SECTION 13 운영체제 주요 구성기술
1. 프로세스 관리
■프로세스 개념
○실행 중인 프로그램
○구성 : 함수의 매개 변수, 프로세스 스택 - 임시적인 자료 저장(복귀 주소, 로컬 변수 등), 데이터 섹션 – 전역변수, 동적으로 할당된 메모리 힙
■프로세스 상태
○보류(pending) : 작업이 일시 중지되거나 디스크에 수록된 상태. New 라고도 함
○준비(ready) : CPU가 사용할 수 있는 상태, 즉 CPU를 할당받을 수 있는 상태로 CPU가 자신을 처리해 주기를 기다림
○실행(running) : CPU를 차지한 상태, CPU에 의해 수행되고 있는 상태
○대기(blocked) : CPU를 차지하고 있다가 입출력처리와 같은 사건이 발생하면, CPU를 양도하기 입출력 처리가 완료될 때 까지 대기 큐에서 대기 하고 있는 상태
○완료(Terminated) : CPU를 할당 받아 주어진 시간 내에 완전히 수행을 종료한 상태
■프로세스 상태 전이
○디스패치(Dispatch) : 준비상태 → 실행상태
-준비상태의 프로세스 중 우선순위가 가장 노은 프로세스를 선정하여 CPU를 할당
○할당시간 초과(Time Run out) : 실행상태 → 준비상태
-CPU의 지정된 할당 시간을 모두 사용하였음에도 완료되지 못한 프로세스는 다시 준비 상태로 돌아감
○대기(Block) : 실행상태 → 대기상태
-실행 중인 프로세스가 입출력 명령을 만나면 인터럽트가 발생하여 CPU를 양도하고 스스로 대기 상태로 전환
○깨움(Wake up) : 대기상태 → 준비상태
-입출력 완료를 기다리가 입출력이 완료 되면, 준비상태로 전환
■프로세스 제어 블록(PCB)
○OS가 프로세스를 관리하는데 필요한 모든 정보를 유지하는 자료구조 테이블
○프로세스가 생성할 때 만들어 짐
○모든 프로세스는 각각 고유한 프로세스 디스크립터(Process descriptor, PCB의 다른말)을 가짐
○OS가 CPU를 다른 프로세스에 넘겨 주고자 할 때, 프로세스의 모든 정보를 PCB에 저장하고 다시 실행할 때 보관된 PCB의 정보를 활용
○PCB에 포함된 정보
-프로세스 상태
-프로그램 카운터 : 다음에 실행할 명령어 주소
-CPU 레지스터
-CPU 스케줄링 정보 : 우선순위, 스케줄 큐에 대한 포인터와 다른 스케줄 매개변수 등을 포함
-메모리 관리 정보
-회계(accounting) 정보 : CPU 사용시간, 경과 시간, 시간 제한, 계정번호, 프로세스 번호 등
-입출력 상태 : 할당된 입출력 장치와 열린 파일 목록 등
■프로세스 간 통신(IPC, Interprocess Communication)
○독립 프로세스와 병행 프로세스
-독립프로세스 : 프로세스가 실행 중인 다른 프로세스에 영향을 주거나 받지 않는 프로세스
-병행(협력적인) 프로세스 : 프로세스가 실행 중인 다른 프로세스에게 영향을 주거나 받는 프로세스
○공유 메모리 방법
-협력 프로세스에 의해 공유되는 메모리 영역을 구축
-협력 프로세스들은 공유 영역에 데이터를 읽고 씀으로서 정보를 교환
○메시지 전달
-협력 프로세스 사이에 교환되는 메시지를 통하여 통신
■클라이언트 서버 환경에서 통신
○소켓
-IP주소와 포트번호를 이용하여 통신
○파이프(Pipes)
-두 프로세스가 통신할 수 있게 하는 전달자
○지명 파이프(Named Pipes)
2. 스레드
■스레드(Threads) 개념
○프로세스 내에서 실행 제어만 분리한 흐름의 단위
○일반적으로 한 프로그램은 하나의 스레드를 가지고 있으나, 경우에 따라 다수의 스레드를 가질 수 도 있음
■스레드와 프로세스의 차이
○프로세스는 OS로부터 자원을 할당받은 작업의 단위이고, 스레드는 프로세스가 할당받은 자원을 실행하는 단위임
○스레드는 프로세스 보다 작은 단위 임
○스레드는 자원 할당에는 관여하지 않고, 프로세서 스케줄링의 단위로서 사용됨
■다중 스레드
○동시에 여러개의 스레드를 갖는 형태
○장점
-빠른 응답성
-자원 공유(공유 메모리)
-경제성
-다중 처리기 구조의 활용
3. CPU 스케줄링
■CPU 스케줄링 개념
○CPU 자원을 언제 어느프로세스에게 배당할 것인지 결정하는 작업
■스케줄링 기준
○CPU이용률(Utilization)과 처리량(Throughput)을 최대화
-처리량 : 단위 시간당 완료되는 프로세스의 개수
○총 처리시간(Turnaround time), 대기시간, 응답시간을 최소화
-총처리시간 : 프로세스의 제출시간과 완료시간의 간격
-대기시간 : 프로세스가 준비큐에서 대기하면서 보낸 시간의 합
-응답시간 : 대화식 시스템에서 사용
■프로세스 스케줄링 분류
○선점 스케줄링
-한 프로세스가 CPU를 차지하고 있을 때 다른 프로세스가 현재 프로세스를 중지시키고 CPU를 차지하는 기법
-RR, SRT, MLQ, MFQ
○비선점 스케줄링
-한 프로세스가 CPU를 할당 받으면 다른 프로세스는 그 CPU를 뺏을 수 없는 기법
-FIFO, SJF, HRN
■프로세스 스케줄링 알고리즘
○FIFO(First Come First Out)
-먼저 요청한 프로세스가 먼저 처리 되는 방식
○SJF(Shortest job first)
-가장 짧은 CPU 처리시간을 가진 프로세스가 먼저 처리되는 방식
-긴 처리시간을 가진 프로세스는 무한정 대기할 수 있음
○HRN(Highest Response Ratio Next)
-(대기시간 + 서비스 받을 시간) / 서비스 받을 시간 으로 계산한 방법
-무한정 대기하는 것을 보안하기 위해서 만들어짐
○RR(Round Robin)
-시간할당량을 두어서, 일정 시간이 지나면 CPU 자원을 다른 프로세스에게 양도하는 방식
-시간의 크기에 따라 매우 많은 문맥 교환을 하거나 FIFO와 동일하게 됨
○SRT(Shortest Remaining Time)
-SJF와 같이 가장 짧은 소요시간이 드는 프로세스를 먼저 수행하는 방식
-단, 시간할당량을 두어서 일정시간이 니가면 CPU 자원을 놓고 대기큐로 돌아감
○다단계 큐(MLQ, Multi Level Queue)
-프로세스는 메모리 크기, 프로세스 우선순위, 프로세스 유형 등 프로세스의 특성에 따라 한 개의 큐에 영구적으로 할당
-각 5개의 큐(시스템 프로세스, 대화형 프로세스, 대화형 편집 프로세스, 일괄처리 프로세스, 학생프로세스)는 자신의 스케줄링 알고리즘을 갖음
○다단계 피드백 큐(MFQ)
-입출력 위주와 CPU 위주인 프로세스의 특성에 따라 서로 다른 타임 슬라이스를 부여
-큐 사이를 이동하는 기법
-RR방식으로 처음 프로세스가 들어오면 높은 우선 순위에 할당하고, 점차 낮은 우선 순위를 부여하여 단계 n에 이르러 완료하는 방식
-CPU 사용시간이 짧은 입출력 중신의 프로세스와 대화형 프로세스가 높은 우선 순위에서 실행
-계산 위주의 작업은 낮은 단계의 큐에 머무르면서 충분한 시간동안 CPU를 할당 받음
4. 프로세스 동기화
■기본개념
○임계영역
-하나의 프로세스가 수정 가능한 공유 자원을 액세스 하고 있을 때, 그 프로세스에 의해 참조되는 다른 프로그램의 부분
-하나의 프로세스가 공유 데이터에 접근하면 다른 프로세스는 그 공유 데이터에 접근하면 안됨
-특정 프로세스가 독점할 수 없으며, 입계구역에 대한 진입을 요청하면 일정 시간애에 진입을 허락해야함
○상호배제
-한 프로세스가 공유 기억장치나 공유 파일을 사용하고 있을 때, 다른 프로세스가 사용하지 못하도록 배제시키는 방법
○경쟁조건
-2개 이상의 프로세스가 공유 메모리에 읽기/쓰기를 할 때 어떤 프로세스를 먼저 실행시키는지 결정하는 방법
■상호 배제 기법
○세마포어
-세마포어의 S 는 정수 값을 가지는 변수로서, 공유자원에 접근하기 위해서는 S를 얻어야함
-한 프로세스가 S를 변경하는 동안에 다른 프로세스가 동시에 S 값을 변경해서는 안된다는 원칙
-연산 P : 입계 구역에 들어가기 전에 수행(Wait). S를 얻는 행위로 S가 0과 같지 않으면 대기큐에 추가
-연산 V : 임계 구역에 나올 때 수행. S를 반납하는 행위로 한 개 이상의 프로세스가 대기 중이면 한 개의 프로세스만 진행
○모니터
-모니터 내의 공유 자원을 사용하려면 프로세스는 반드시 모니터의 진입부를 호풀해야 하는 방법
-모니터 내부는 정보의 은폐 기법임??
ㆍ정보은폐 : 현재 모듈 설계를 다른 계층의 모듈로부터 보이지 않게 하는 것
ㆍ불필요한 정보를 감추고, 계층마다 인터페이스가 명확해 짐
ㆍ시스템의 유연성, 이해성 증가, 모듈 독립성도 높아짐
- 모니터 외부에서 임계영역에 집입할 때 Wait 연산을 수행하여 대기 하고, 임계영역을 사용한 후 벗어 날 때 Signal 연산을 수행하여 사용이 끝났다는 것을 알림
■교착상태
○다중 프로그래밍에서 아무리 기다려도 결코 일어나지 않을 사건을 기다리는 상태
○둘 이상의 서로 다른 프로세스가 자신이 요구한 자원을 할당 받아 점유하고 있으면서, 상호간에 상대방 프로세스에 할당되어 있는 자원을 요구하는 경우 발생
■교착상태의 4가지 필요조건
○상호배제 : 프로세스가 자원을 배타적으로 점유하고 있어, 다른 프로세스가 자원을 사용할 수 없게 함
○점유와 대기 : 최소한 하나의 자원을 점유하고 있는 프로세스가 존재해야 하며, 이 프로셋는 다른 프로세스에 할당된 자원을 추가로 점유하기 위해 대기
○비선점 자원 : 점유한 프로세스로부터 벗어나지 못함
○환형대기 : 프로세스와 자원이 원형을 이루며, 각 프로세스가 자신에게 할당된 자원을 가지면서 상대방 프로세스의 자원을 상호 요청하는 경우
5. 메모리 관리
■메모리 관리 개요
○기억장치의 어느 부분이 사용 중인지 아닌지 여부를 조사하고, 프로세스가 요구할 때 마다 기억장치를 할당하고 사용이 끝나면 회수
■스와핑(Swapping)
○프로세스가 실행 중에 메모리(주기억장치)에서 예비 저장장치(가상기억장치)로 내보내지거나 메모리로 돌아오는 것
○모든 프로세스의 물리 주소 공간 크기의 실제 물리 메모리 크기보다 큰 경우에도 사용
■메모리 할당
○고정분할
-메모리를 똑같은 고정된 크기로 분할
-다중 프로그래밍 정도 : 한 프로세스가 가지고 있는 분할 개수
○가변 분할
-메모리의 어떤 부분이 사용되고, 어떤 부분이 사용되지 않는가를 파악할 수 있는 테이블을 유지
-각 프로세스가 메모리를 얼마나 요구하며, 사용가능한 메모리 공간이 어디에 얼마나 있는지 고려하여 공간을 할당
■메모리 관리 정책
○반입정책
-언제 가져올 것인가를 결정하는 문제
-요구 반입 정책 : 어떤 프로그램이나 자료가 참조되는 시점에 옮기는 기법
-예상 반입 정책 : 현 프로그램 수행 중에 앞으로 요구될 가능성이 큰 자료 또는 프로그램을 예상하여 미리 옮기는 방법
○배치 정책
-어디에 위치시킬 것인가 결정하는 정책
-최초 적합 : 첫 번째 사용 가능한 공간 할당
-최적 적합 : 사용 가능한 공간들 중 가장 작은 공간에 할당
-최악 적합 : 사용 가능한 공간 들 중 가장 큰 공간에 할당
○교체 정책
-어떤 프로그램이나 자료를 주기억 장치에서 저거 할 것인가를 결정하는 정책
-페이지 부재가 발생하면, 제거할 페이지를 선택하는 정책
■페이지 교체 기법
○선입선출(FIFO)
-먼저 올라와서 오래된 페이지를 교체
○최적 교체
-최적의 페이지를 교체하는 방식
-모순의 발생으로 사용하지 않음
○LRU(Least Recently Used)
-가장 널리 사용하는 방법
-페이지마다 카운터를 두어 현 시점에서 가장 오랫동안 사용되지 않은 페이지를 제거
-블러왔던 시간을 기록해야 하여 시간 오버헤드가 발생, 실제로 구현이 어려움
○2차 기회 알고리즘(SCR, Second Chance Replacement)
-FIFO 방식에서 LRU 결합
-불러왔던 시간이 아닌 참조 비트를 두는 방법으로, 프로세스가 수행되면서 참조한 페이지의 비트를 변경
-참조비트가 0이면서, 가장 오래된 페이지를 교체하는 방식
○NUR(Not Used Recently)
-LRU처럼 가장 오래 사용되지 않은 페이지를 교체하면서, LRU의 단점인 시간 오버헤드를 적게 하는 방식
-참조비트와 변경비트를 둠
-프로세스가 쑤행되면서 참조하거나 변경한 페이지의 비트를 변경하는 방식
-참조비트 0 과 변경비트 0 인 페이지 중에서 교체하는 방식
○계수기반 페이지 교체
-페이지를 참조할 때 마다 계수하는 기법
-LFU : 참조횟수가 가장 작은 페이지를 교체하는 방식
-MFU : 가장 작은 참조횟수를 가진 페이지가 가장 최근에 참조된 것이라는 판단에 근거
■스레싱과 워킹세트
○스레싱(Thrashing)
-너무 자주 페이지 교체가 일어나는 현상
-프로세스의 처리시간보다 페이지 교체 시간이 더 많아 지는 현상
○페이지 부재 빈도(PFF, Page –Fault Frequency)
○구역성(Locality, 지역성)
-하나의 기억장소가 참조되면, 그 근처의 기억장소가 계속 참조될 가능성이 높다는 것
○워킹세트(Working Set)
-실행 중인 프로세스가 일정 시간동안 참조하는 페이지이의 집합
6. 가상 기억장치
■기본 개념
○프로그램, 데이터, 스택의 결합된 크기가 이용할 수 있는 물리적인 기억장치를 초과 하는 경우 사용
○정기적으로 실행되는 프로그램의 일부는 1차 주기억장치에 유지하고, 나머지는 2차 가장기억장치에 유지
■동작원리
○가상기억공간과 실기억 공간을 연결하는 주소 매핑 과정이 필요
○논리 어드레스 공간을 블록으로 나누어 놓고, 실제 주기억 장치에는 용량에 맞는 블록만 로드 함
■가상기억 장치의 분류
○구현 방법에 따라 : 페이징(고정블록), 세그멘테이션(가변블록), 혼용기법
○사상표 색인을 찾은 방법에 따라 : 집접 사상 방법, 연관 사상 방법, 혼용기법
7. 세그멘테이션
■개념
○
8. 저장장치 관리
■ㅇㅁㄴㅇㄹ
'기타 > 공부하기' 카테고리의 다른 글
[정보보안기사] SECTION 15 클라이언트 보안 (0) | 2018.03.07 |
---|---|
[정보보안기사] SECTION 14 보안 운영체제 (0) | 2018.03.07 |
[정보보안기사] SECTION 08 접근통제 개요 (0) | 2018.03.06 |
[정보보안기사] SECTION 07 키, 난수 (0) | 2018.03.06 |
[정보보안기사] SECTION 05 해시함수와 응용 (0) | 2018.03.06 |