운영체제 소개
*운영체제의 개요
운영체제는 컴퓨터를 사용하기 위해 반드시 필요한 소프트웨어 중 하나입니다. 컴퓨터가 사용자에게 제공하는 서비스가 다양해지고 편리해지는 만큼 사용자를 위해 컴퓨터 내에서 이루어져야 하는 자원의 관리나 활용이 효율적으로 동작해야 하는데, 운영체제는 그 근간을 이루는 핵심적인 시스템 소프트웨어입니다. 이번 강의에서는 운영체제에 대한 전반적인 개요에 대해 알아봅니다. 우선 운영체제의 정의와 역할을 살펴본 후, 운영체제를 구성하는 기본적 요소인 프로세스 관리자, 메모리 관리자, 장치 관리자, 파일 관리자의 역할에 대해 개략적으로 학습합니다. 그리고 운영체제의 유형에 대해 살펴봅니다.
*정리하기
- 운영체제는 컴퓨터 시스템의 자원을 관리하고 컴퓨터 프로그램이 동작하기 위한 서비스를 제공하는 프로그램들의 모습으로 대표적인 시스템 소프트웨어이다.
- 커널 모드는 하드웨어를 직접 제어할 수 있는 CPU의 명령어를 사용할 수 있는 모드이고, 사용자 모드는 하드웨어를 직접 제어할 수 있는 CPU의 명령어를 사용할 수 없는 모드이다.
- 응용 프로그램은 사용자 모드에서 동작하기에, 하드웨어에 대한 제어가 필요한 경우 시스템 호출을 통해 필요한 서비스를 운영체제에 요청해야 한다.
- 운영체제의 주요 구성요소에는 프로세스 관리자, 메모리 관리자, 장치관리자, 파일 관리자가 있다.
- 운영체제의 대표적인 유형으로는 일괄처리 운영체제, 시분할 운영체제, 실시간 운영체제, 분산 운영체제가 있다.
*프로세스의 개요
프로그램을 실행시키면 운영체제로부터 프로그램이 동작하는 데 필요한 자원을 할당받아 동작을 시작합니다. 이처럼 실행상태에 들어간 프로그램을 프로세스라고 합니다. 프로세스의 동작은 CPU가 그 프로세스의 명령들을 실행하는 것입니다. 이때 CPU도 기억장치나 입출력장치와 마찬가지로 프로세스가 동작하는데 필요한 자원입니다. 그리고 프로세스 내에서의 다중처리를 위해 한 프로세스 안에 여러 개의 쓰레드를 두기도 합니다. 이번 강의에서는 운영체제의 핵심적인 구성요소 중 하나인 프로세스에 대한 기본적인 이해와 함께 쓰레드의 개념을 학습합니다.
*정리하기
- 프로세스는 실행 중인 프로그램을 의미하며, CPU, 메모리, 파일, 입출력장치 등 실행에 필요한 자원이 할당된다.
- 프로세스 제어 블록은 프로세스를 명시해 주는 다양한 내용을 포함하고 있다.
- 프로세스는 생성, 준비, 실행, 대기, 종료의 다섯 상태 중 하나로 존재하며, CPU의 스케줄링, 입출력 대기 등에 따라 준비, 실행, 대기 등으로 상태가 변화되며 동작한다.
- 쓰레드는 프로세스에서 실행의 개념만 분리한 것으로 디스패칭의 단위이다.
- 하나의 프로세스 내에는 하나 이상의 쓰레드가 있을 수 있어, 다중 쓰레드를 생성하여 프로세스 내에서의 다중처리를 할 수 있다.
*프로세스 스케줄링의 개요
운영체제는 실행할 준비가 된 프로세스들이 CPU를 적절히 배정받아 작업을 효율적으로 처리할 수 있도록 관리해야 하고, 이를 위해 다양한 스케줄링 알고리즘을 활용합니다. 이번 강의에서는 프로세스 스케줄링의 개요와 정책에 대해 살펴보고, 스케줄링 알고리즘의 성능평가 기준과 함께 여러 가지 스케줄링 기법에 대해 학습합니다.
*정리하기
- 프로세스의 스케줄링을 위해 상위단계, 하위단계 및 중간단계 스케줄링이 사용된다.
- 선점 스케줄링 정책은 실행 중인 프로세스에 인터럽트를 걸고 다른 프로세스에 CPU를 할당할 수 있는 스케줄링 방식이고, 비선점 스케줄링 정책은 실행 중인 프로세스를 바로 준비상태로 전이시킬 수 없는 스케줄링 방식이다.
- FCFS 스케줄링은 준비 큐에 도착한 순서에 따라 디스패치하는 비선점 방식의 스케줄링 알고리즘이다.
- SJF 스케줄링은 준비 큐에서 기다리는 프로세스 중 실행시간이 가장 짧다고 예상되는 것을 먼저 디스패치하는 비선점 방식의 스케줄링 알고리즘이다.
- SRT 스케줄링은 준비 큐에서 기다리는 프로세스 중 남은 실행시간이 가장 짧다고 예상되는 것을 먼저 디스패치하는 선점 방식의 알고리즘이다.
- RR 스케줄링은 프로세스가 도착한 순서대로 프로세스를 디스패치하지만 정해진 시간 할당량에 의해 실행을 제한하는 선점 방식의 스케줄링 알고리즘이다.
- HRN 스케줄링은 준비 큐에서 기다리는 프로세스 중 응답비율이 가장 큰 것을 먼저 디스패치하여 실행하는 비선점 방식의 스케줄링 알고리즘이다.
- HRN 스케줄링의 응답비율은 예상실행시간이 짧을수록, 그리고 대기시간이 길수록 커진다.
- 다단계 피드백 큐 스케줄링은 입출력 위주의 프로세스가 연산 위주의 프로세스보다 우선권을 갖도록 하는 선점 방식의 알고리즘이다.