Study

운영체제(Operating System)

mynameisjh 2022. 3. 27. 14:37

● 운영체제란?

- 컴퓨터 사용자와 하드웨어 시스템 간의 인터페이스를 담당하는 프로그램이다.

 

운영체제의 기능

- 자원 관리 : 어떠한 기준(indicator:지표)에 맞춰 만들어주는 활동.

→ 자원을 정해진 기준에 맞추는 것.

- 장치 제어 : 자원 관리를 하기 위한 방법. ex) 명령어를 보낸다.

- 사용자 편의 제공

 

 운영체제의 종류

 

- 구조적 구분 : Micro Kernel, Monolithic Kernel

※ Kernel : OS의 핵심으로, H/W Control의 핵심 코드

· Micro Kernel : 순수한 Kernel이 독립적으로 존재하고, 나머지는 유저 모드에서 기능을 수행하는 Kernel

· Monolithic Kernel : 모든 기능을 Kernel에 집중시킨 Kernel.

(ex : Unix, Linux, Windows . . )

- 장점 : 빠르다.

- 단점 : 보안에 취약하고 디버깅이 힘들다.

- OSS적 구분 : Linux, Unix, Windows

  운영체제의 계층 구조

운영체제 계층 구조

- 특징 : 계층이 낮아지면 낮아질수록 중요하고, 보안이 강화된다.

- 장점 : N 계층은 (N-1) 계층만 생각하면 된다. 모듈화, 테스트가 용이하다.

- 단점 : 계층이 많은 만큼 속도가 느리다.

 운영체제의 목표

 

목표
지표
설명
★효율성
높은 Throughput
단위 시간당 처리 작업량 증가
빠른 응답속도
짧은 응답 시간, 반환 시간
신뢰성
견고성
높은 품질, 안정된 동작
보안성
기밀성, 무결성, 가용성 제공
병목현상의 해결 및 회피 방안
상호작용성
사용성
대화식, 쉬운 인터페이스
학습용이성
개인화, 보편성
확장성
규모 확장성
Scale Up, Scale Out
설계 유연성
멀티 프로세싱 능력 향상
메모리 관리 유연

운영체제의 성능 평가 기준

- 응답 시간 (Response time) : 작업이 처음 실행되기까지 걸린 시간

- 대기 시간 (Waiting time) : 작업을 실행하지 않은 시간의 합계

- 실행 시간 (Running time, Burst time) : CPU가 작업을 처리한 시간의 합계

Running time을 운영체제의 목적에 맞게 공정하게 분배해야 기아 상태를 방지할 수 있다.

※ Running time과 Burst time의 차이점

· Running time : CPU, I/O 등 무엇이든 작동하면 Running time

· Burst time : 오로지 CPU만 작동하는 시간

* 위 개념에선 I/O라는 개념 없이 CPU만 쓴다는 가정 하에 둘을 같은 의미로 사용했다.

- 반환 시간(Turn-around time) : 작업이 완료되기까지 걸린 시간 (대기 시간 + 실행 시간)

 프로세스란?

- CPU에 의해 실행되는 프로그램

- PCB(Process Control Block)에 의해 관리된다.

- PCB(Process Control Block) : 프로세스 정보를 저장한 자료 구조

- PCB의 크기는 OS가 로딩 될 때 정한다.

- OS는 PCB의 PID 시작 주소만 알고 있으면 PCB의 내용을 알 수 있다.

이 PID의 시작점을 Segment라고 한다.

프로세스 관리

- 문맥 교환(Context Switching) : CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해, 이전의 프로세스의 상태(Context)를 보관하고 새로운 프로세스의 상태를 적재하는 과정.

- 문맥 교환이 필요한 이유 :멀티 프로세싱, 기아상태 방지

- 발생 시점 : Time Slice(Time Quantum) 소진 시, Interrupt 발생 시, 사용자, 커널 모드 전환시

※ 사용자 모드는 커널 모드에 동작을 요청하기 때문에 문맥 교환이 발생한다. 그러므로 속도가 저하된다.

스케줄링의 종류

 

▶ 스케줄링 정책에 따른 종류

· 선점형 스케줄링(Preemptive Scheduling) : OS가 실행중인 프로세스를 중단 가능

- 장점 : 기아 상태 발생 X

- 단점 : 빈번한 문맥 교환으로 Over head 발생

※ 보통 OS는 선점형 스케줄링 방식을 사용한다.

· 비선점형 스케줄링(Non-Preemptive Scheduling) : OS가 실행중인 프로세스를 중단 할 수없다.

- 장점 : 문맥교환으로 인한 Over head가 적다.

- 단점 : 기아 상태 발생

시기에 따른 종류

- 상태가 변하는 빈도에 따라 장기(가끔), 중기(중간), 단기(많이)로 나뉜다.

 시기에 따른 종류는 단기가 가장 중요하며, 현대 OS에선 크게 의미를 두지 않는다.

★프로세스 상태 전이 (Process State Diagram)

프로세스 상태 전이도

★ 중앙 선의 위쪽 부분인 Active 상태는 메모리에서 동작하고, 중앙 선의 아래쪽 부분인 Suspended 상태는 디스크에서 동작한다.

· Create : 프로세스가 처음 생성되는 상태로, Ready 상태 또는 Suspended Ready 상태로 갈 수 있다.

· Ready : Dispatch가 되면 바로 Running이 될 수 있는 실행 대기 상태

· Running : 현재 CPU를 할당받아 사용하고 있는 상태

· Asleep : 자원을 할당 받을 때 까지 대기하는 상태

· Create → Ready : 시기에 따른 종류 중 장기에 해당. : Job scheduling, CPU bound와 I/O bound를 적절히 조합

· Running → Asleep : 중기에 해당. Swapper, 실행되고 있는 프로세스를 빼내는 스케줄링

· Asleep → Ready : 중기에 해당.

· Ready ↔ Running = Dispatch, Time-out 등 CPU를 차지할 프로세스를 선택하는 스케줄링

※ 단기에 해당하며 가장 빈번하게 일어나는 스케줄링이다.

- 프로세스도 결국 프로그램이다. 문제가 생기면 현재 상태를 Disk에 전부 적는다. = Dump

- 만약 Ready 상태에서 문제가 생기면 그것을 디버깅하기 위해 Swap-out을 해서 Disk에 Dump하는 과정이 Suspended Ready 이다. Disk에 있는 내용을 다시 Ready로 올리는 것이 Swap-in이다.

- Asleep 상태에서도 마찬가지로 동작한다.

'Study' 카테고리의 다른 글

2022-07-18  (0) 2022.07.18
Process Memory Map / Debug  (0) 2022.03.27
메모리와 버스  (0) 2022.03.27