홍카나의 공부방

[운영체제] Ch.2 운영체제의 역할, 구분, 구조, 기능 본문

Operating System

[운영체제] Ch.2 운영체제의 역할, 구분, 구조, 기능

홍문관카페나무 2023. 3. 17. 23:28

본 글은 김덕수 교수님의 2019년도 봄학기 운영체제(CPA310)

강의 내용을 바탕으로 요약 정리한 내용입니다.

 

https://sites.google.com/view/hpclab/courses/operating-system

 

HPC Lab., KOREATECH - Operating System

Operating System (CSE132)

sites.google.com

 


운영체제의 역할

 

운영체제는 User Interface로 유저에게 편리성을 제공하고,

HW, SW 자원을 관리하면서 효율성을 높여주는 역할을 한다.

 

컴퓨터 시스템의 구성

 

컴퓨터의 전체적인 구조를 나타내면 위와 같이 나타낼 수 있는데

여기서 커널이 제공하는 기능 중 User가 사용할 수 있는 기능은 system call interface를 통해 제공된다.

 


운영체제의 구분

 

운영체제는 기준에 따라 다음과 같이 구분할 수 있는데

- 동시 사용자 수에 따라 Single-user, Multi-user

- 동시 실행 프로세스 수에 따라 Single-Task, Multi-Task

- 작업 수행 방식에 따라 Batch, Time-Sharing, real-time system 등으로 구분된다.

 

single-user system은 우리가 사용하는 Windows같은 OS가 이에 속하고

Multi-user system은 컴공과 학생이라면 학부 시절에 한 번쯤은 써봤을 Linux 등이 속한다.

PuTTY 등을 이용하면서 학교 리눅스 서버에 접속하여 C 과제를 제출해본 적이 있는지?

이 때는 하나의 운영체제(ex. 학교 리눅스 서버)를 여러 사용자들이 동시에 접속하여 사용하게 된다.

그리고 요즘은 99% Multi-Task 방식이다.

 

Batch 방식의 경우 시스템 지향적 방식으로, Throughput은 좋을 수 있으나 생산성이 저하된다.

(작업들을 모아두었다가 일괄처리하는 방식이기 때문이다.)

 

시분할(Time sharing) 방식의 경우 운영체제가

여러 프로그램들에게 시간을 나눠주면서 자원을 번갈아 사용할 수 있도록 하는 방식이다.

Windows에서 흔히 지원하는 방식이다.

 


운영체제의 구조

 

운영체제는 여러 계층으로 구성되어있다. 일반적으로,

 

(1) 커널 : OS의 핵심 부분으로, CPU, 메모리, I/O 디바이스 등의 시스템 자원을 관리하며 메모리에 상주한다.

- 하드웨어와 시스템의 소프트웨어 컴포넌트 간 인터페이스를 제공하기도 한다.

(2) 유틸리티 : UI 등의 서비스 프로그램등이 포함되며, 비상주 프로그램이다.

(3) 시스템 콜(System Call) : 어플리케이션들이 OS로부터 서비스를 요청할 때 사용되는 메커니즘이다.

- 응용 프로그램들이 파일을 읽고 쓰거나, 새로운 프로세스를 만들거나, 메모리를 할당받을 때 시스템 콜이 발생한다.

- 시스템 콜은 응용 프로그램과 OS간의 표준 인터페이스를 제공하며, 시스템 자원에 접속하는 것을 허가한다.

- 쉽게 이야기 하면 OS가 응용프로그램에 제공하는 서비스다.

 

운영체제의 계층적 구조 예시

 


운영체제의 기능

• 프로세스(Process) 관리
• 프로세서(Processor) 관리
• 메모리(Memory) 관리
• 파일(File) 관리
• 입출력(I/O) 관리
• 보조 기억 장치 및 기타 주변장치 관리 등이 운영체제의 기능이다.

 

여기서 프로세스는 커널에 등록된 작업 단위, 커널에 등록되고 관리하에 있는 작업,

혹은 간단하게 실행 중인 프로그램이라고 이야기할 수 있는데 다음 챕터에서 보다 자세하게 정의하도록 한다. 

 

OS의 프로세스 관리 기능에는

• 생성/삭제, 상태관리
• 자원 할당
• 프로세스 간 통신 및 동기화(synchronization)
• 교착상태(deadlock) 해결
• PCB (Process Control Bloc)로 프로세스 정보를 관리하는 것 등이 있다.

 

OS의 프로세서 관리 기능에는 프로세스 스케쥴링, 프로세스 할당 관리 등이 있다.

프로세스 스케쥴링은 시스템 내의 프로세스 처리 순서를 정하는 것인데,

뒤 챕터에서 Process State Transition Diagram 등을 학습하며 보다 자세히 살펴볼 것이다.

 

메모리 관리, 파일 관리, 입출력 관리도 뒤이어서 자세하게 살펴볼 것이다.

 

반응형