티스토리 뷰
2장 : 운영체제 소개===============================
- 운영체제란 ?
편리하고 효율적으로 하드웨어를 사용자가 이용할 수 있도록 시스템의 운영을 돕는 역할을 한다.
- 컴퓨터 시스템 = 사용자 + 소프트웨어 + 하드웨어
- 운영체제의 기능
1. 자원의 효율적 운영을 위한 스케쥴링
2. 사용자와 컴퓨터간 시스템 인터페이스
3. 각종 자원의 제어, 관리, 할당
4. 오류 검사 및 복구
5. 보안 관리 및 자원 보호
6. 통신 및 네트워크 관리
7. 사용자간의 자원 공유
- 운영체제의 구성
1. 커널
- OS의 핵심부분, 메모리에 상주
- H/W자원의 제어, 관리 및 입출력
- 제어 프로그램이라고도 함.
2. 서비스프로그램
- 유틸리티, 사용자 인터페이스 기능
- 처리프로그램, 비상주 프로그램들.
(cpu,기억장치,주변장치,프로세스,파일시스템을 관리한다.)
- 운영체제의 분류
1. 일괄처리시스템
- 다량의 작업을 모아서 한꺼번에 일괄 처리.
(상주모니터,오프라인연산,버퍼링,스풀링)
2. 시분할 시스템
- 여러사람이 공동으로 cpu사용, 통신, 고성능필수
3. 다중 프로그래밍 시스템
- 하나의 cpu에 여러 프로그램을 실행
4. 다중처리 시스템
- 한시스템에 2개이상의 cpu, 서버용, 강결합
5. 실시간 시스템
- 데이터 발생, 처리요구시 즉시 처리(은행)
6. 다중모드 시스템
- 일괄처리,시분할,다중처리,실시간을 모두 제공
7. 분산처리 시스템
- 약결합시스템, 서버용OS에서 지원
- 분산된 여러대의 컴퓨터에 수행기능 분담.
- 네트워크를 이용한 상호간 교신,처리
OS의 구조 | |
단순구조 | 작고간단,시스템기능이 제한적 높은성능 |
계층구조 | 모듈화/오류수정용이/설계구현이 단순 |
윈도우 구조 | 커널이 운영체제의 기본기능만을 제공 |
리눅스/유닉스 구조 | 윈도우대비 단순, 셀개념 |
마이크로 커널 구조 | 커널이가볍고 실시간 시스템에 활용, 기능변경이 쉬움 |
3장 : 프로세스와 스레드============================
- 프로세스의 개념
현재 실행중인 상태의 프로그램, 살아있는 프로그램.
고유번호인 PID를 갖고 주기억장치에 위치한다.
메모리에 주소공간을 갖는 능동적 개체.
- 프로세스의 구성
텍스트영역/데이터영역/스택영역
- 프로세스의 종류
1. 운영체제 프로세스(커널or시스템프로세스)
2. 사용자 프로세스(사용자 코드 수행)
3. 병행 프로세스
- 독립프로세스 : 타 프로세스에 영향x 독립적
- 협동프로세스 : 상호작용,통신을위한 수단, 동기화 필요
- 프로세스의 상태
1. 실행 상태 프로세스
- 실행/대기or보류/준비(한순간에 한프로세스만 실행됨)
2. 비실행 상태 프로세스
- 프로세스의 상태
1. 준비 큐(Queue)에서 실행준비상태로 대기.
cpu에서 처리->완료or다시준비큐에 대기 -> 입출력큐에 대기
- 프로세스의 기본 상태
1. 준비상태 : cpu를 할당 받을 수 있는 상태 준비큐에서 처리를 기다림
2. 실행상태 : 실행/처리되고있는 상태
3. 대기상태 : wait이벤트 발생시 cpu양도, 입출력큐에대기
4. 완료상태 : 수행종료
- 프로세스 제어 블록(PCB)
프로세스에 대한 정보가 저장된 자료 구조 테이블
프로세스를 관리하기 위해 사용, 각하나의 PCB를 가짐.
프로세스 생성시 만들어지고, 실행완료시 삭제됨.
식별번호/상태/우선순위/HW상태/cpu사용,대기시간
기억장소관리정보/입출력상태정보/자원의 포인터/부모자식프로세스 번호
- 문맥교환
@운영체제는 문맥교환시간을 최소화해야함.
실행중 프로세스를 종료, PCB에 저장하고 타프로세스를 실행,
- 인터럽트
외부의 이벤트에 의한 발생(입출력인터럽트/클록인터럽트)
- 트랩
부적절한 파일 접근 또는 실행중 프로세스의 오류/예외로 인한 발생
- 스레드
경량프로세스/프로세스의 내부의 실행 작업단위
멀티스레드 = 하나의 프로세스, 다수의 스레드
실행환경의 공유,문맥교환과 같은 오버헤드 감소.
기억장소 낭비 감소, 어렵고 복잡한 프로그래밍.
사용자수준스레드/커널수준스레드/혼합형스레드
4장 : 병행 프로세스와 상호배제======================
- 병행 프로세스의 개념
서로연관성을 가지고 협동, 경쟁하는 두 개이상의 프로세스
경쟁조건을 피하기위해 프로세스 동기화가 필요함
- 동기화 유형
일반 동기화 : 생산자/소비자관계의 동기화
생산,소비와 같이 미리 정해진 순서로 협동적 처리 방식
특수 동기화 : 경쟁적 상호 배제
- 상호 배제
하나의 프로세스 이외 모든 프로세스들이 공유변수를 접근 못하게 제어, 뮤텍스라고도 함
- 임계 영역
프로세스 중에서 공유자원에 접근하는 코드 영역
수정 가능한 공유 데이터에 접근, 한번에 한 스레드만 접근.
- 소프트웨어적 임계영역 문제해결
데커의 알고리즘(선호스레드개념사용)
페터슨의 알고리즘(바쁜대기,데코대비 간단, 선호스레드사용)
- 하드웨어적 임계영역 문제 해결
특별한 하드웨어 명렁을 사용, 임계영역 문제를 해결
testandest를 이용한 상호배제 알고리즘
- 진입 상호 배제
프로세스 하나가 임계영역에 있으면 다른 프로세스가 임계영역에 들어가지 못하게 하는 것
- 상호배제 알고리즘의 문제점
Busy-Waiting 발생, cpu시간 낭비 초래.
-->> 세마포어 알고리즘을 통한 최소화.
- 세마포어
공유변수 S와 P연산, V연산을 이용한 알고리즘
Binary Semaphore – 한 자원에 1개만 접근허용
Counting Semaphore = 다수의 자원에 다수 접근 허용
@세마포어S는 정수값을 갖는 변수, 초기화 및 두 개의 연산으로만 접근 가능한 특수 변수
S연산 – 첫째프로세스가 S를 0으로, 임계영역접근. 1이될때까지 다음 프로세스는 대기
V연산 – 공유자원을 다 쓰면 S를 1로 바꾼다.
- 세마포어의 문제점
불공정 수행이 동반될 수 있음.
- 모니터
프로그래밍언어에서 지원, 프로그램 라이브러리 형태
제어가 용이, 자료의 추상화, 정보은닉 기법을 도입.
모든 프로세스는 모니터를 통한 공유자원 이용가능
5장 : 교착상태와 기아상태==========================
- 교착상태
대기 중인 프로세스 중 한 프로세스에 의해서만 발생할 수 있는 사건을 둘 이상의 프로세스가 무한히 대기할 때 발생.
- 발생의 예
파일 요청시 / 전용장치할당시 / 스풀링 시스템 사용 시
- 발생의 조건
상호배제 / 점유와 대기 / 비선점 / 순환대기
- 해결방안
예방 / 회피 / 회복
교착 상태 무시 : 희박한 사건으로 간주, 무시
교착 상태 예방 : 교착상태발생의 4가지 조건 중 하나를 허용하지 않음
교착 상태 회피 : 교착 상태 발생시키는 자원의 요청 회피
교착 상태 탐지 : 항상 자원요청을 인정/ 주기적탐지,회복
- 교착상태 회피의 예 : 은행가 알고리즘
다익스트라의 은행가 알고리즘
-->각 프로세스가 요청하는 자원의 종류 최대수를 알아야함
- 기아상태
프로세스가 오랜기간 자신의 작업을 완료하지 못하는 상태
- 교착상태를 예방하기 위한 자원을 할당할 때 발생
-> 에이징 기법 이용.
- 에이징 기법
대기시간이 오래된 프로세스에 최우선적으로 자원을 할당하는 방법.
오래된 프로그램이 있다면 그 프로그램에 필요한 자원만을 할당
6장 : 프로세서 스케쥴링=============================
- 스케쥴링의 개념
주어진 시간에 시스템이 실행할 프로세스를 선택하는 작업
- 스케쥴러 : 언제 어ᄄᅠᆫ 프로세스에게 cpu를 할당할지 결정
- 스케줄링 알고리즘 : 효율적 프로세스 처리를 위한 방법
공정한스케줄링/처리량극대화/우선순위에 따른 처리
응답시간,작업반환시간최소화/균형있는 자원사용/ 무한대기금지
- 스케줄링 단계
1단계 : 작업 스케줄링 – 승인 스케줄링
2단계 : 작업승인과 프로세서 할당(사용권한)
3단계 : 프로세서 스케줄링(디스패칭)
- 스케줄링 알고리즘의 종류
1. 선입선처리 기법
2. 초소작업 우선기법
3. SRTN 기법
4. 우선순위 스케줄링 기법
5. 순환 할당 기법
6. 다단계큐 스케줄링 기법
7. 다단계 피드백 큐 스케줄링 기법 /8. HRN 기법 / 9. SRT기법
10. 기한부 스케줄링 기법/11. 다중 프로세서 스케줄링
종류 | 방법 | 특징 |
|
FIFO | 들어온 순서대로 처리 | 일괄처리에 적합 간단하고 구현 용이 | 비선점 |
RR | cpu에 일정한 시간을 부여 | 대화형/시분할 방식 | 선점 |
SJF | 수행시간이 적은작업 우선처리 | 작은작업에 유리 | 비선점 |
SRT | 잔여수행시간이 적은 작업을 우선 | SJF의 선점형 버전 | 선점 |
HRN | 응답률이 높은 프로세스 먼저 처리 | 공평함 | 비선점 |
우선순위 | 프로세스 우선순위가 높은 순서대로 처리 | 일괄처리시스템에서 주로사용 | 비선점 |
기한부 | 주어진 시간내 작업종료 여부 처리 방법 | 실시간 시스템에 적합 | 비선점 |
MLQ | 다수의 큐에서 서로 다른 방식으로 프로세스 처리 | 프로세스 유형에 따라 준비 큐가 고정 | 선점 |
MFQ | 하나의 프로세스에 대해서 여러개의 피드백 큐를 걸쳐 일을 처리 | 대화형 프로세스에 적합 | 선점 |
- 알고리즘 선택기준
측정한 시스템의 내용의 상대적 중요성을 정의하는 것이 필요
7장 : 메모리 관리==================================
- 메모리 관리
다중 프로그래밍 시스템에서 운영체제에 의해 동적으로 메모리의 사용자 영역을 여러프로세스가 상주 할수 있도록 세분화 하는 과정
- 메모리 관리 정책
주기억장치(RAM)을 효율적으로 관리하기 위한 기법
반입정책/배치정책/교체정책
- 반입정책
프로그램 혹은 데이터를 언제 주 기억장치로 가져 올 것인가.
요구반입기법/예상반입기법
- 배치정책
새로 반입된 데이터나 프로그램을 주기억장치의 어디에 위치시킬것인가를 결정하는 정책(최초적합/최적적합/최악적합)
- 교체정책
새로 들어온 프로그램이 들어갈 장소를 마련하기 위해서 어떤 프로그램이나 데이터를 교체할 것인가를 결정하는 정책
- 메모리의 공간 구분
1. 물리적 공간(물리적 주소)
실제 데이터나 프로그램이 저장되는 공간
메모리 칩 또는 디스크 공간으로 생성 사용되는 단위는 BYTE
2. 논리적 공간(논리적 주소)
프로그래머가 프로그래밍에 사용하는 공간
목적코드가 저장된 공간과 프로그램에서 사용하는 자료 구조등이 해당
- 메모리 매핑
논리적 주소와 물리적 주소의 연결/MMU하드웨어에서 실행
메모리 관리 방식에 따라 여러방식으로 구분됨
(고정분할/동적분할/페이징/세그먼트/페이지화된 세그먼트)
- 주소바인딩
논리적 주소를 물리적 주소로 변환하는 과정
- 동적 적재
재배치 가능한 형태로 모든 메모리를 적재하지않고 디스크에 저장
- 중첩(프로세스의 크기가 실제 메모리 크기로 제한되는 문제점을 해결)
중첩영역에는 필요한 시기에 해당 프로그램을 불러 들여 저장.
- 프로세스 교체
Roll-In/Roll-out을 통한 높은 우선순위프로세스와 스왑.
- 단일 사용자 연속 메모리 할당
연속할당방식/단편화의발생이잦음/단순하고 구현이 용이
- 고정분할 다중프로그래밍
연속할당방식/MFT메모리할당방법/내부단편화발생
- 가변분할 다중프로그래밍
가장 합리적인 분할의 크기를 결정하여 각 작업에 할당
1. 최초적합기법 : 첫 번째 공백 분할 공간에 할당
2. 최적적합기법 : 가장 작은 크기의 사용공간에 할당
3. 최악적합기법 : 가장 큰 사용공간에 할당
- 세그먼트 메모리 관리기법
크기가 가변적이고 기억장치 어느곳에도 자리할수 있음.
- 페이지화된 세그먼트 메모리 할당
메모리의 효율적 사용/페이징과 세그먼테이션의 결합구조
외부단편화문제를 제거, 할당과정을 쉽게 해결
8장 : 가상 메모리==================================
- 가상 메모리
큰 논리 주소 공간을 작은 실제 메모리로 사상하는 기법
작업의 크기가 메인 메모리의 사용가능 공간의 제약이 없음.
메모리의 효율적 이용 가능, 다중 프로그래밍의 정도를 증가.
- 가상 메모리의 관리 기법
세그먼트기법과 페이징 기법의 혼합으로 외부/내부단편화 제거 및 최소화
소프트웨어의 복잡도가 커짐.
- 요구 페이징
가장 일반적인 가상 메모리 체계로 스왑 기법을 사용하는 페이징 시스템과 비슷함.
프로그램을 실행하기 위해 프로그램의 일부만을 메인 메모리에 적재
- 페이지 테이블
변화를 반영하기 위해 갱신되고 페이지 부재를 일으킨 명령을 다시 시작함.
- 선입선출 대치 알고리즘(FIFO)
가장 간단한 페이지 대치 알고리즘이며 메모리 안으로 들어간 시간이 가장 오래된 페이지부터 대치
- 최적 페이지 대치 알고리즘
페이지 부재율이 가장 낮으며 가장 오랜 기간동안 사용되지 않을 페이지를 대치
- 최근 최소 사용 알고리즘
가장 최근의 과거를 사용하여 오랜기간 동안 사용되지 않은 페이지를 대치
- 스레싱
페이지 교환이 계속 일어나는 현상(충분한 기억장치를 가지지 않을 때)
'IT Skills > Others' 카테고리의 다른 글
VS2015 에서 GIT사용시 uncommitted changes would be overwritten by merge 에러 (0) | 2018.01.08 |
---|---|
Microsoft VisualStudio 2013 Pro/Ulimate 설치 파일 다운로드 주소 (0) | 2018.01.08 |
리눅스 명령어 총정리 (CTRL + F 로 기능 찾아 쓰자) (0) | 2016.09.27 |
WEB 1.0/2.0/3.0 의 차이점 (0) | 2016.09.27 |
[시스템 분석 및 설계] 개념 총 정리 (0) | 2016.09.27 |
- Total
- Today
- Yesterday
- 마우스
- 피규어
- Asus
- 윈도우즈 10
- Windows 10
- 이어폰
- 라이언
- ps4
- 프라모델
- m5a97
- 프로그래밍
- 디지몬
- 고양이
- AMD
- 카카오프렌즈
- 보스
- 아이폰X
- 일본여행
- 안산
- 애드센스
- 구글
- PS2
- 건담
- 일본
- 노트북
- 디지바이스
- 듀얼쇼크4
- razer
- javascript
- 플스2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |