자격증/정보보안기사

02. 운영체제 구조

nf_S 2025. 10. 20. 21:43

 

운영체제 (OS, Operating Systam)

 

1. 운영체제 정의

 - 컴퓨터 시스템의 자원(하드웨어, 소프트웨어)들을 효율적으로 관리

 - 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공

 

2. 운영체제 목적

 - 처리 능력 향상 : 시간당 작업 처리량 (Throughput), 평균 처리시간 개선

 - 신뢰성 향상 : 실패 없이 주어진 기능을 수행할 수 있는 능력

 - 응답시간 단축 : 사용자가 시스템에 의뢰한 작업의 반응 시간 단축

 - 자원 활용률 향상 : 자원의 공유, 상호배제를 통해 자원 효율적 활용

 - 가용성 향상 : 고장과 오류가 발생해도 운영 영향 최소화

 

3. 운영체제 분류

분류 설명
Batch Processing System 유사한 작업을 모아 일괄처리, 긴 실행 시간 소요
하드웨어의 효율적 이용은 가능하나 실시간 처리 미흡
Multi Programming System CPU 가동률 극대화 > 유휴 시간 최소화
작업들을 스케줄링에 의해 수행
정교한 메모리 관리 및 스케줄링 필요
Time Sharing / Multi-tasking System Multi Programming의 논리적 확장
사용자와 시스템 간의 interactive한 서비스
Multi-Processing System 가용성 증대를 위해 여러개의 CPU로 다중작업을 구현
Real-Time System 시스템 서비스 요청이 발생할 때마다 시간에 제약을 두어 즉시 처리하고 결과를 출력 (실시간)
Multi-Mode Processing 일괄처리, 시분할, 다중처리, 실시간 처리를 한 시스템에서 모두 제공
Distributed System 독립적 운영체제가 네트워크 등을 이용해 협업

 

4. 운영체제의 주요 자원 관리 기능

주요 자원 관리자 설명
프로세스 관리 프로세스 스케줄링 및 동기화 관리
프로세스 생성과 제거, 시작과 정지, 메시지 전달 등의 기능
기억장치 관리 프로세스에 메모리 할당 및 회수 관리
주변장치 관리 입/출력 장치 스케줄링 및 점유 관리
파일 관리 파일의 생성과 삭제, 변경, 유지 등의 관리

 

 

프로세스 관리 (Process Management)

 

1. 프로세스

- 레지스터, 스택, 포인터, 실행중인 프로그램, 데이터 등의 집합체

- 실행중인 프로세스

- 프로세서에 의해 수행되는 프로그램 단위로 현재 실행 중이거나 곧 실행 가능한 PCB (Process Control Block)을 가진 프로그램

 

2. 스레드

- 제어의 흐름을 의미하는 것으로 프로세스에서 실행의 개념만 분리

- 프로세스의 구성을 크게 제어의 흐름 (실행단위)과 실행 환경 부분으로 나눌 때, 스레드는 프로세스의 실행 부분을 담당함으로써 실행의 기본 단위가 됨

 

구분 Thread Process
상호통신 Library Call
요청 Thread만 Blocking
System Call
Call 종료시까지 전체 자원 Blocking
처리방식 CPU를 이용하는 기본 작업
단위로 구분
자원할당을 위한 기본 구분 단위
부하 프로세스보다 상대적으로 부하 발생이 적음 Context Switching으로 인한 부하 발생
프로세스 자원 할당 시 부하 발생

 

* Context Switching (문맥 교환)

 - 인터럽트 발생, 실행 중인 프로세스가 CPU 사용을 허가 받은 시간(Quantum)을 모두 소모한 경우 I/O 입출력을 위해 대기해야하는 경우 발생

 - 실행 중인 프로세스보다 높은 우선순위를 가진 프로세스가 도착한 경우에도 발생

 

 

CPU 스케줄링 (Scheduling) 기법

 

1. 스케줄링

- 컴퓨터의 자원(Resource)을 효율적으로 사용하기 위한 정책을 계획

- 특정 자원을 요청하고 있는 프로세서들을 대상으로 CPU 자원을 할당해 주는 순서를 정함

 

2. 스케줄링 목적

- CPU 활용 극대화 : CPU의 유휴 시간 최소화

- 응답시간 단축 : 프로세스 평균 응답 시간 단축

- 공평한 자원 활용 : 주어진 기간 동안 특정 자원 사용 효율화

- Multi-Tasking 효율화 : 다중 프로세스의 공평한 처리

 

3. 스케줄러 역할에 의한 구분

구분 설명
장기 스케줄러 상위(Hig level, long time) 스케줄링, 작업 스케줄링 (Job 스케줄링)
어떤 작업이 시스템의 자원들을 차지할 것인지 결정 (큐에 적재)
중기 스케줄러 어떤 프로세스들이 CPU를 할당받을 것인지 결정
CPU를 사용하려는 프로세스 간 중재하여 일시 보류 & 재활성화
단기 스케줄러 하위 스케줄링, CPU 스케줄링, 프로세스 스케줄링
CPU 스케줄러인 Dispatcher에 의해 동작된 (프로세스에 CPU 할당)

 

4. 스케줄러의 점유 방식에 의한 구분

구분 선점 (Preemptive) 비선점 (Non-Preemptive)
개념 프로세스가 CPU 점유 중에도 다른 프로세스가 CPU 점유 가능 프로세스가 CPU를 해제할 때까지 다른 프로세스는 대기
장점 빠른 응답, 모바일, RTOS
대화식 시분할 적합
응답 시간 예상 용이
Batch Process 적합
프로세스에 대한 요구를 공정하게 처리
단점 Overhead 발생 (Context-Switching) 짧은 작업에도 장기간 대기하는 경우가 발생
스케줄링 기법 Round-Robin, SRT FCFS, SJF, HRN

 

5. CPU 스케줄링 기법

1) FCFS (First Come First Service)

 - 대기 큐에 도착한 순서에 따라 CPU 할당

 - 일단 프로세스가 CPU를 차지하면 완료될 때까지 수행

 - 긴 작업이 짧은 작업을 오랫동안 기다리게 할 수 있으며, 중요하지 않은 작업이 중요한 작업을 기다리게 할 가능성 존재

 - 비선점형 스케줄링 기법

 

2) SJF (Shortest Job First)  스케줄링

 - 기다리고 있는 작업중에서 수행 시간이 가장 짧다고 판단되는 것을 먼저 수행

 - FCFS보다 평균 대기시간을 감소시키는 반면, 큰 작업에 대해서는 FCFS에 비해 대기시간 예측이 어려움

 - 비선점형 스케줄링 기법

 

3) 라운드 로빈 (Round Robin) 스케줄링

 - FCFS에 의해서 프로세스들이 내려보내지며 각 프로세스는 같은 크기의 CPU 시간을 할당

 - CPU 시간이 만료될 때까지 처리를 완료하지 못하면 CPU는 대기중인 다음 프로세스로 넘어가며 (Preemptive), 실행 중이던 프로세스는 준비 완료 리스트의 가장 뒤로 보내진다.

 - 선점형 스케줄링 기법

 

4) SRT (Shortest Remaining Time) 스케줄링

 - SJF와 마찬가지로 새로 도착한 프로세스를 포함하여 처리가 완료되는 데까지 가장 짧은 시간이 소요된다고 판단되는 프로세스를 먼저 수행

 - 실행 중인 프로세스라도 남은 처리 시간이 더 짧다고 판단되는 프로세스가 생기면 언제라고 실행중인 프로세스가 선점됨

 - SJF 방식에 선점 방삭을 도입하였으며 실시간 시스템에 유리

 

5) Multi Level Queue

 - 여러 종류의 그룹으로 나누어 여러 개의 큐를 이용하는 스케줄링 기법

 - 그룹화된 작업들은 각각의 준비 큐에 넣어두고 각 큐의 독자적인 스케줄링 알고리즘에 따라서 CPU를 할당 받는 방법

 

6) Multi level Feedback Queue

 - 입출력 위주와 CPU 위주인 프로세스의 특성에 따라 서로 다른 타임 슬라이스를 부여

 - 새로운 프로그램이 들어오면 높은 우선순위를 할당해 주어 단계 1에서 즉시 수행하고, 점차 낮은 우선순위를 부여하며 단계가 n쯤 되는 나중에는 그 작업이 완료될 때까지 라운드로빈으로 순환

 - 비선점 기법이 우선순위 Queue와 Round Robin을 모두 사용하므로 Hybrid 스케줄링 기법임

 

병행성 제어 (Concurrency Control)

 

1. 상호배체 (Mutual Exclusion Techniques)

 - 다수의 프로세스가 동일 자원에 접근 시 무결성을 보장하기 위한 기법

 - 두 개 이상의 프로세스가 공유 자원에 동시에 읽기/쓰기를 못하게 하는 상호배체 메커니즘

 - 임계영역의 개념을 이용하여 두 프로세스가 하나의 공유 자원을 상호 배타적으로 사용하는 기법

 

2. 임계영역 (Critical Section)

 - 한순간에 반드시 프로세스 하나만 진입해야 하는데, 프로그램에서 임계 자원을 이용하는 부분으로 공유 자원의 독점을 보장하는 코드 영역을 의미

 - 지정된 시간이 지나면 종료

 - 병렬 컴퓨팅(Parallel Computing)에서 둘 이상의 스레드가 동시에 접근해서는 안 되는 공유 자원에 접근하는 코드의 일부로도 쓰임

 - 스레드가 공유자원의 배타적인 사용을 보장받기 위해서 임계 구역에 들어가거나 나올 때는 세마포어 같은 동기화 메커니즘이 이용됨

 - lock()과 unlock()사이

 

3. 세마포어(Semaphore), 모니터(Monitor)

1) 세마포어 상호배제 구현 방법

 - 여러 프로세스/스레드가 공유자원에 동시 접근이 불가능하도록 접근 제어하는 방법

 - 운영체제가 제공하는 자원으로 세마포어 S는 정수 값을 가지는 변수로서 초기화 및 두 개의 연산으로만 접근 가능한 특수한 변수를 이용해 상호배제 구현

 - 한 번에 하나의 프로세스만 접근하는 이진(Binary) 세마포어와 지정된 개수만큼 접근을 허용하는 카운팅(Counting)세마포어로 나뉨

 

2) 모니터 상호배제 구현 기법

 - 별도의 프로그램 작성 필요 없고, 공유 자원을 모니터 내부의 지역 변수로 정의하여 상호배제 구현

 - 모니터는 Hight Level Language를 지원

 - 지역 변수는 모니터 내의 함수(프로시저)에서만 접근 가능

 - 프로세스는 모니터의 프로시저 호출을 통해 모니터에 진입할 수 있음

 - 언제나 단지 하나의 프로세스만이 모니터 내부에 존재

 

4. 교착상태 (Dead Lock)

- 하나 또는 둘 이상의 프로세스가 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 상태

- 발생조건

조건 설명
상호배제 (Mutual Exclusion) 프로세서들이 자원을 배타적 점유
다른 프로세서들이 자원 사용 불가
한 번에 한 프로세스만이 자원 사용 가능
점유와 대기 (Hold and Wait) 부분 할당, 다른 종류의 자원을 부가적으로 요구하면서 이미 어떤 사원을 점유하고 있음
비선점 (Non-preemption) 자원들은 그들을 점유하고 있는 프로세스로부터 도중에 해제되지 않음
프로세스들 자신이 점유한 자원을 해제할 수 있음
환형대기 (Circular Wait) 프로세스와 자원들이 원형을 이루며, 각 프로세스는 자신에게 할당된 자원을 가지면서 상대방 프로세스의 자원을 상호 요청하는 경우

 

 

4. 교착상태 대응 방법

1) 교착상태 예방 (Prevention)

 - 예방조건

조건 설명
점유와 대기 조건의 부정 각 프로세스는 필요한 자원들을 모두 한번에 요청
(실행 전 모든 자원을 할당하여 대기를 없애거나 자원이 점유되지 않은 상태에서만 자원 요구)
비선점 조건의 부정 이미 자원을 가지고 있는 프로세스 > 자원 할당 요구 있을 시 받아들여지지 않을 시 > 보유 자원 반납
반납 후 필요 자원에 대한 요구 다시 시도
무기한 연기 가능성 존재
환형대기 조건의 부정 모든 프로세스에게 각 자원의 유형별로 할당순서 부여
실행 중 우선순위의 변동이나 새오룬 자원 추가 시 구성이 어려움
상호 배제 조건의 부정 한 번에 여러개의 프로세스가 공유 자원을 사용할 수 있도록 함
공유 가능한 자원들은 배타적인 접근을 요구하지 않으므로 교착상태 조건 충족x

 

2) 교착상태 회피 (Avoidance) - 은행원 알고리즘 (Banker's Algorithm)

 - 안전 상태 (Safe State) : 시스템이 교착상태를 일으키지 않으면서 각 프로세스가 요구한 최대 요구량만큼 필요한 자원을 할당해 줄 수 있는 상태로 안전순서열이 존재하는 상태

 - 불안전 상태 (Unsafe State) : 안전순서열이 존재하지 않는 상태. 교착상태이기 위한 필요조건으로 교착상태는 불안전 상태에서만 발생

 - 안전 상태 개념을 이용하여 교착상태 회피 알고리즘 구성 가능

 - 현재 가용자원을 프로세스 요청 시 바로 할당해 줄 것인지 기다리게 할 것인지를 결정하는 문제

 

3) 교착상태 발견 (Detection)

 - 발견 기법

기법 설명
교착상태 발견 알고리즘 교착상태 발생 여부를 파악하기 위해 시스템의 상태를 검사하기 위한 알고리즘
교착상태의 발생 빈도 수
교착상태가 발생하였을 때 영향을 받는 프로세스 수
자원 할당 그래프 방향 그래프를 이용하여 자원의 할당사항과 요구사항을 나타내는 기법
자원 할당 그래프의 소거법을 이용하여 교착상태 감지
실행을 완료할 수 있는 프로세스와 교착상태에 빠진 프로세스를 결정

 

4) 교착상태 회복 (Recovery)

 - 회복 기법

기법 설명
프로세스 중지 교착상태 프로세스들을 모두 중지하는 방법
해결될 때까지 한 프로세스씩 중지
자원 선점 프로세스로부터 자원들을 선점하여, 이들 자원을 교착상태가 해결될 때까지 다른 프로세스들에게 할당

 

 - 교착상태 해결 방안

구분 설명
교착상태 예방 (Prevention) 교착상태의 필요조건을 부정함으로써 교착상태가 발생하지 않도록 미리 예방
ex) 환형대기, 비선점, 점유와 대기, 상호배제 부정
교착상태 회피 (Avoidance) 교착상태 가능성을 배제하지 않고 적절히 피하는 방법
ex) 은행원 알고리즘
교착상태 탐지 (Detection) 교착상태 발생을 허용하고, 발생 시 원인을 규명하여 해결
ex) 자원할당 그래프
교착상태 복구 (Recovery) 교착상태 발견 후 환형대기를 배제시키거나 자원을 중단하는 메모리 할당 기법
ex) 선점, 프로세스 중지 (희생자 선택)

 

 

 

장치 관리 방법

1. 디스크 관리 (Disk Management)

- 가장 많이 사용하는 보조기억장치 중 하나로 마치 레코드판을 여러 개 중첩해서 놓은 것과 비슷

- 디스크 헤드(Head)가 임의의 섹터(Sector)를 랜덤하게 참조할 수 있고 빠르게 데이터를 읽을 수 있음. 또 주기억장치보다 많은 양의 데이터를 저장할 수 있음

 

- 디스크 접근 시간

디스크 접근 시간 설명
탐색시간 (Seek Time) 현 위치에서 특정 실린더로 디스크 헤드가 이동하느데 소요되는 시간
회전 지연시간 (Rotation Delay Time) 가고자 하는 섹터가 디스크 헤드까지 도달하는 데 걸리는 시간
전송시간 (Transfer Time) 데이터를 전송하는데 걸리는 시간

 

2. 디스크 스케줄링(Disk Scheduling)의 종류

1) FCFS (First-Come First Served)

 - 가장 먼저 도달한 요청을 우선척으로 처리

 - 장점 : 개발 용이, 공평성 유지

 - 단점 : 이동 경로 길어짐

 

2) SSTF (Shortest-Seek Time First)

 - 탐색 거리가 가장 짧은 트랙에 대한 요청을 먼저 서비스

 - 현재 Head  위치에서 가까운 요청을 우선적으로 처리

 - 장점 : 전반적인 Seek Time 감소 

 - 단점 : Starvation (Head가 중간에 위치하고 있으면 가장 안쪽이나 가장 바깥쪽에 있는 트랙을 서비스할 확률이 낮아지기 때문에 발생) 가능

 

3) SCAN (엘레베이터 알고리즘)

 - SSTF가 갖는 탐색시간의 편차를 해소하기 위한 기법

 - Head가 이동하는 방향의 모든 요청을 서비스하고, 끝까지 이동 후 역방향의 요청을 서비스함

 

4) C-SCAN (Circular-SCAN)
 - 바깥쪽에서 안쪽으로 이동

 - 안쪽 방향으로 끝까지 이동을 반복

 - 끝에 도달하면 바깥쪽으로 이동하여 요청을 다시 처리

 

5) C-LOOK (Circular-Look)

 - C-SCAN의 보완, 대기시간을 좀 더 균형있게 함

 - Head 이동 방향의 마지막 입출력 요청을 처리한 후 디스크 헤드를 처음 위치로 이동하여 다음 입출력 요청을 처리

 

3. 파일 시스템 (File System)

 - 사용자가 생성한 파일을 저장소에 어떻게 저장하고 관리할 것인지를 결정

 

4. RAID (Redundant Array of Independent Disk)

- 디스크 고장 시 그대로 복구할 수 있도록 2개 이상의 디스크에 데이터를 저장하는 기술

- 즉, 디스크의 기계적인 장애로부터 사용자의 데이터를 안정적으로 지킬 수 있음

'자격증 > 정보보안기사' 카테고리의 다른 글

01. 시스템 보안  (0) 2025.07.10