정보보안산업기사

[정보보안산업기사 필기] 1과목 - 시스템 보안 Section2. 운영체제 구조

sungw00 2022. 5. 28. 18:13
728x90

1. 운영체제(OS)의 개요

1) 운영체제: 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임

 

2) 운영체제의 목적

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

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

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

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

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

 

3) 운영체제의 주요 자원 관리 기능

- 프로세스 관리

- 기억장치 관리

- 주변장치 관리

- 파일 관리

 

4) 운영체제의 분류

- Batch Processing System(일괄처리): 유사한 작업을 모아 일괄 처리, 긴 실행 시간, 실시간 처리 미흡

- Multi Programming System(다중프로그래밍): CPU 가동률 극대화 -> 유휴 시간 최소화, 스케줄링에 의한 수행, 정교한 메모리 관리 및 스케줄링 필요

- Time Sharing(시분할) / Multi-tasking System(다중작업): 다중프로그래밍의 확장, 사용자와 시스템 간의 상호작용

- Multi-Processing System(다중처리): 여러 개의 CPU로 다중 작업 -> 가용성 증대

- Real-time System(실시간): 시간에 제약을 두어 즉시 처리 -> 결과를 출력

- Multi-Mode Processing(다중모드): 일괄처리, 시분할, 다중처리, 실시간 처리를 한 시스템에서 모두 제공

- Distributed System(분산): 독립적 운영체제가 네트워크 등을 이용해 협업

 

2. 프로세스 관리

1) 프로세스

- 레지스터, 스택, 포인터, 실행중인 프로그램, 데이터

- 실행중인 프로세스

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

 

2) 스레드

- 제어의 흐름, 프로세스에서 실행의 개념만을 분리한 개념

- 프로세스의 실행 부분을 담당 -> 실행의 기본 단위

스레드와 프로세스의 비교

3) 프로세스 상태전이

- 운영체제-프로세스 실행 제어, 프로세스에 대한 정보 유지 담당

- 프로세스 실행 결정 및 필요한 시스템 자원 할당하는 과정

- 프로세스의 상태 변환을 위해 OS는 작업 스케줄러와 프로세스 스케줄러 두 종류의 CPU 스케줄러를 사용함

 

3. CPU 스케줄링 기법

1) 스케줄링

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

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

 

2) 프로세스 스케줄링의 목적

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

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

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

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

 

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

3) CPU 스케줄링 기법

- FCFS(First Come First Service): 대기 큐에 도착한 순서에 따라 CPU를 할당, 차지하면 완료될 때까지 수행, 긴 작업이 짧은 작업을 오랫동안 기다리게 할 수 있음, 중요하지 않은 작업이 중요한 작업을 기다리게 할 수 있음(대화식 실시간 시스템에는 부적합), 비선점형 스케줄링 기법

FCFS

 

- SJF(Shortest Job First): 수행 시간이 가장 짧다고 판단된 것을 먼저 수행, FCFS보다 평균 대기시간 감소, 큰 작업에 대해서는 대기시간 예측이 어려움, 비선점형 스케줄링 기법

SJF

- 라운드 로빈: CPU 시간이 만료될 때까지 처리를 완료하지 못하면 CPU는 대기중인 다음 프로세스로 넘어가며(Preemptive), 실행 중이던 프로세스는 준비 완료 리스트의 가장 뒤로 보내짐, 선점형 스케줄링 기법

라운드 로빈

 

- SRT(Shortest Remaining Time): 처리가 완료되는 데까지 가장 짧은 시간이 소요된다고 판단되는 프로세스를 먼저 수행, 실행 중인 프로세스라도 남은 시간이 더 짧다고 판단되는 프로세스가 생기면 언제라도 실행중인 프로세스가 선점됨, SJF 방식에 선점 방식을 도입, 실시간 시스템에 유리

SRT

- Multi Level Queue: 여러 종류의 그룹으로 나누어 여러 개의 큐를 이용, 그룹화된 작업들은 각각의 준비 큐에 넣어두고 각 큐의 독자적인 스케줄링 알고리즘에 따라 CPU를 할당받음

 

- Multi Level Feedback Queue: 입출력 위주와 CPU 위주인 프로세스의 특성에 따라 서로 다른 타임 슬라이스 부여, 새로운 프로그램이 들어오면 높은 우선순위를 할당해 주어 단계 1에서 즉시 수행하고, 점차 낮은 우선순위를 부여하며 단계가 n쯤 되는 나중에는 그 작업이 완료될 때까지 라운드 로빈으로 순환, 비선점과 선점기법을 모두 사용하는 하이브리드 스케줄링 기법

 

4. 병행성 제어

1) 상호배제 기법

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

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

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

 

2) 임계영역

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

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

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

- lock( )과 unlock( )의 사이

- 임계영역을 고려한 전형적인 병행프로세스의 구조

임계영역을 고려한 전형적인 병행프로세스의 구조

 

728x90