[정보보안기사 PART 04] 시스템 보안 - 운영체제 주요 구성기술


Section 13 운영체제 주요 구성기술

 

1. 프로세스 관리

 

(1) 프로세스(Process)

 

1) 프로세스 개념

프로세스는 일을 수행하기 위해 CPU 시간, 메모리, 파일 그리고 입출력 장치를 포함한 여러 가지 자원을 필요로 한다. 즉, 현재 실행 중이거나 곧 실행할 수 있는 PCB를 가진 프로그램이다.

 

프로세스 상태

보류 상태(pending) : 작업이 일시 중지되거나 디스크에 수록된 상태

준비 상태(ready) : CPU가 사용할 수 있는 상태

실행 상태(running) : 프로세스가 CPU를 차지하는 상태

대기 상태(blocked) : 프로세스가 CPU를 차지하고 실행되다가 입출력 처리와 같은 사건이 발생 시, CPU를 양도하고 입출력 처리가 완료될 때까지 대기 큐에서 대기하는 상태

완료 상태(terminated) : 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태

 

프로세스 상태 전이

디스패치(Dispatch) : 준비 상태 -> tlfgod tkdxo

할당 시간 초과(Time Run Out) : 실행 상태 -> 준비 상태

대기(Block) : 실행 상태 -> 대기 상태

깨움(Wake Up) : 대기 상태 -> 준비 상태

 

2) 프로세스 제어블록(PCB)

PCB(Process Control Block, 태스크 제어 블록)으로 OS가 프로세스를 관리하는데 필요한 모든 정보를 유지하는 자료구조 테이블

프로세스 디스크립터(Process descriptor)라 하여 프로세스가 생성할 때 만들어진다.

 

PCB 포함 정보

필드 설명
프로세스 상태 새로운(new), 준비완료(ready), 실행(running), 대기(waiting) 또는 정지(halted)
프로그램 카운터 실행 중인 프로세스가 다음에 실행할 명령어의 주소 가리킨다.
CPU 레지스터 CPU내부에서 처리할 명령어나 연산의 중간 값 등을 일시적으로 기억하는 임시 기억장소
CPU 스케줄링 정보 프로세스 우선순위, 스케줄 큐에 대한 포인터와 다른 스케줄 매개변수 등 포함
메모리 관리 정보 기준 레지스터와 한계 레지스터의 값, 페이지 테이블 또는 세그먼트 테이블 정보 포함
회계(accounting) 정보 CPU 사용시간과 경과된 시간, 시간 제한, 계정 번호, 잡 또는 프로세스 번호 등 포함
입출력 상태 정보 프로세스에게 할당된 입출력 장치와 열린 파일의 목록 등을 포함

 

(2) 스레드(Threads)

 단일 스레드 프로세스와 다중 스레드 프로세스

 각각의 스레드는 독립적인 제어 흐름을 가지고 자신만의 스택과 레지스터를 갖는 것이 특징

 

(3) CPU 스케줄링(CPU Scheduling)

1) 개요

CPU 자원을 언제, 어느 프로세스에게 배당할 것인지를 결정하는 작업

 

2) 스케줄링 기준

 CPU 이용률(utiliztion)

 처리량(throughput)

 총 처리시간(turnaround time)

 대기시간(waiting time)

 응답 시간(response time)

 

3) 프로세스 스케줄링 분류

선점 스케줄링 : 한 프로세스가 CPU를 차지하고 있을 때, 자신이 CPU를 차지할 수 있는 기법

  ex) RR(Round-Robin), SRT(Shortest-Remaining-Time), MLQ(MultiLevel Queue), MFQ(Multilevel Feedback Queue)

비선점 스케줄링 : 한 프로세스가 CPU를 차지하고 있을 때, 그 CPU를 뺏을 수 없는 기법

  ex) FIFO(First-In-First-Out), SJF(Shortest-Job-First), HRN(Highest Response-ratio Next)

 

4) 프로세스 스케줄링 알고리즘

FCFS(First Come First Service) 스케줄링

SJF(Shortest Job First 또는 Shortest Job Next) 스케줄링

HRN(Highest Response ratio Next) 스케줄링

RR(Round Robin) 스케줄링

SRT 스케줄링

다단계 큐(MLQ, Multi Level Queue) 스케줄링

다단계 피드백 큐(MFQ, Multilevel Feedback Queue) 스케줄링

 

(4) 교착상태(Deadlock)

1) 기본 개념

 다중 프로그래밍 시스템에서 아무리 기다려도 결코 일어나지 않을 사건을 기다리는 프로세스가 하나 또는 그 이상 있는 상태이다.

 

2) 교착상태의 4가지 필요조건

 상호 배제(Mutual Exclusion)

 점유와 대기(Hold & Wait)

 비선점(Non-preemption)

 환형 대기(Circular Wait)

 

 

 

2. 메모리 관리

 

(1) 메모리 관리 전략

1) 스와핑

 프로세스가 실행되기 위해서 메모리에 있어야 하지만 프로세스는 실행 중에 임시로 예비 저장장치(backup store)로 내보내어졌다가 실행을 계속하기 위해 다시 메모리로 되돌아온다.

 

2) 메모리 할당

고정 분할

가변 분할

 

4) 메모리 관리 정책

반입(Fetch) 정책

 CPU로 실행하거나 참조하기 위해 주기억장치에 적재할 다음 프로그램이나 자료를 언제 가져올 것인가

ex) 요구 반입 정책(demand fetch strategic), 예상 반입 정책(anticipatory fetch strategic)

 

배치(Placement) 정책

 새로 반입된 자료나 프로그램을 주기억장치의 어디에 위치할 것인가

ex) 최초 적합, 최적 적합, 최악 적합

 

교체(Replacement) 정책

 새로 들어온 프로그램이 들어갈 장소를 마련하기 위해 어떤 프로그램을 주기억장치에서 제거할 것인가

ex) 페이지 부재(page fault)

 

5) 페이지 교체 기법

선입 선출(FIFO, First In First Out)

최적 교체(Optimal Replacement)

LRU(Least Recently Used) : 가장 오랫동안 사용되지 않을 페이지를 제거하는 방법

 

(2) 가상 기억장치

1) 세그먼테이션(Segmentation)

 프로그래머가 생각하는 모양을 그대로 지원하는 메모리 관리 기법

 프로그래머가 생각하는 논리 구조 공간을 세그먼트의 집합으로 이룬다.

 각 세그먼트는 이름과 길이를 가진다.

 내부단편화 X, 외부단편화 O

 

2) 페이징(Paging)

 블록 사이즈가 고정된 방식으로 사용자가 작성한 프로그램은 기계적으로 페이지 단위로 분해

 내부단편화 O, 외부단편화 X

 

3) 페이징/세그먼테이션 혼용

 프로그램을 논리적인 세그먼트 단위로 분할하고 분할된 각 세그먼트를 다시 각각 페이지 단위로 분할

 

6) 연관 사상 방법(associative mapping)

7) 직접/연관 사상 혼용 방법

8) 직접 사상 방법

 

 

 

 

 

 

*출처:[알기사] 2019 정보보안기사&산업기사

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

+ Recent posts