본 글은 반효경 교수님의 운영체제 강의를 들으며 정리하는 글 입니다.
1. 운영체제의 정의
운영 체제(operating system)란 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어를 말한다.
운영 체제는 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층이다.
운영 체제 자체도 하나의 소프트웨어로서 전원이 켜짐과 동시에 메모리에 올라간다. 하지만 운영 체제처럼 규모가 큰 프로그램이 모두 메모리에 올라간다면 한정된 메모리 공간의 낭비가 심할 것이다. 따라서 운영 체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려 놓고, 그렇지 않은 부분은 필요할 때 메모리로 올려서 사용하게 된다.
1 - 1) 좁은 의미의 운영체제
메모리에 상주하는 운영 체제의 부분을 커널(kernel)이라고 부르며 운영 체제의 핵심 부분이다.
1 - 2) 넓은 의미의 운영 체제
커널 뿐 아니라 시스템을 위한 유틸리티 (파일 복사 프로그램 등) 등을 뜻한다.
이와 같은 유틸리티들은 항상 메모리에 올려져 있는 것이 아닌 필요할 때 올라가는 별도의 프로그램이다.
2. 운영체제의 기능
2 - 1) 사용자에게 편리한 환경 제공
편리한 환경을 제공한다는 뜻은 운영 체제가 여러 사용자 및 프로그램들에게 각각 독자적으로 컴퓨터를 사용하는 것 같은 환상(?)을 제공한다.
운영 체제는 하드웨어를 다루는 복잡한 부분은 대행해 주고, 각 사용자 및 프로그램은 이에 대한 자세한 내용을 알지 못해도 프로그램을 실행할 수 있도록 한다.
바로 위 그림과 같이 추상화된 컴퓨터를 통해 사용자는 파일이 디스크에 어떻게 저장되는지 몰라도 쉽게 파일을 저장할 수 있다.
사용자 입장에서는 편하게 사용할 수 있는 것 이다.
2 - 2) 컴퓨터의 자원을 효율적으로 관리!
자원이란 CPU, 메모리, 하드디스크 등 하드웨어 자원뿐 아니라 소프트웨어 자원까지 통칭해서 부른다.
운영 체제는 이와 같은 자원을 효율적으로 관리하면서 좋은 성능을 내는 동시에 자원을 형평성 있게 분배하도록 만드는 균형자 역할도 수행한다.
형평성 있게 분배한다는 점을 생각하면, 항상 우선순위가 높은 쪽에만 자원을 분배하는 않는다는 것 이다.
3. 운영체제의 분류
3 - 1) 동시 작업 가능 여부
단일 작업 운영 체제
- 한 번에 하나의 작업만 처리한다.
- 한 명령의 수행이 끝나기 전에 다른 명령을 수행할 수 없다.
- ex) MS-DOS
다중 작업 운영 체제
- 동시에 두 개 이상의 작업을 처리할 수 있다.
- 한 명령의 수행이 끝나기 전에 다른 명령을 수행할 수 있다.
- ex) UNIX, MS Windows
3 - 2) 동시 사용자 수
단일 사용자용 운영 체제
- 한 번에 한 명의 사용자만이 사용하도록 허용한다.
- ex) MS-DOS, MS Windows
다중 사용자용 운영 체제
- 여러 사용자가 동시에 접속해 사용할 수 있다.
- ex) UNIX, NT server
3 - 3) 처리 방식에 따른
일괄 처리 방식 운영 체제 (Batch)
- 작업을 모아서 한꺼번에 처리한다.
- 작업이 완전히 종료될 때까지 기다려야 한다.
- ex) Punch Card 처리 시스템
시분할 방식 운영 체제 (Time Share)
- 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정 시간 단위로 분할해 사용한다.
- 일괄 처리 방식에 비해 응답 시간이 짧다.
- 사용자의 요청에 대한 결과를 곧바로 얻을 수 있으므로 대화형 시스템이라고 부른다.
- ex) UNIX
실시간 방식 운영 체제 (Real Time)
- 정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장한다.
- 시간 제약의 중요성에 따라 2가지로 분류한다.
- 경성 실시간 시스템: 주어진 시간을 지키지 않으면 매우 위험한 일이 발생하는 시스템 (ex. 원자로 제어 시스템)
- 연성 실시간 시스템: 주어진 시간을 지키지 않으면 내용 전달이 미흡할 수는 있으나 경성 실시간 시스템처럼 치명적이지는 않은 시스템 (ex. 멀티미디어 스트리밍 시스템)
3 - 4) 용어 정리
- Multitasking : 동시에 여러 작업을 수행하는
- Multiprogramming : 동시에 여러 작업을 수행하기 위해 메모리에 여러 프로그램이 올라가 있는 것을 강조
- Time Sharing
- Multiprocess
- MultiProcessor : 멀티 프로세서는 CPU(processor)가 여러개 라는 의미이다.
4. 운영체제의 자원 관리 기능
▶ 자원
하드웨어 자원 (CPU, 메모리, 주변 장치, 입출력 장치) + 소프트웨어 자원
4 - 1) CPU 스케줄링
CPU는 통상적으로 컴퓨터 한 대에 하나가 장착되기 때문에 여러 process들이 CPU를 효율적으로 나누어 사용할 수 있도록 관리되어야 한다.
CPU 스케줄링의 목표는 CPU를 가장 효율적으로 사용하면서도 특정 프로세스가 불이익을 당하지 않도록 하는 것이다.
대표적인 스케줄링 기법으로 선입선출, 라운드 로빈, 우선순위 기법 등이 있다.
4 - 2) 메모리 관리
메모리는 CPU가 직접 접근할 수 있는 컴퓨터 내부의 기억 장치이며, 프로그램이 CPU에서 실행되려면 해당 부분이 메모리에 올라가 있어야 한다.
이때 한정된 메모리 공간에 여러 프로그램을 수용하려면 메모리에 대한 효율적인 관리 메커니즘이 필요하다.
따라서 메모리 관리를 위해 운영 체제는 메모리의 어느 부분이 어떤 프로그램에 의해 사용되고 있는지를 파악하여 이를 유지하게 되는데, 이러한 정보는 주소를 통해 관리된다.
물리적 메모리는 관리하는 방식은 고정 분할 방식, 가변 분할 방식, 가상 메모리 방식 등이 있다.
4 - 3) 디스크 관리
디스크의 용량도 한정적이다. 따라서 사용자가 필요로 하는 파일을 최대한 효율적이면서 많은 양의 파일을 저장해야 한다.
연속적인 공간에 저장하여 파일을 찾기 쉽게 저장할 것인지, 많은 양의 파일을 저장하기 이해서 파일을 조각 조각 잘라 여기 저기에 저장할지 판단한다.
디스크에서 파일을 읽어올 때는 디스크에 있는 헤더가 해당 파일을 찾아 읽어 온다. 이때 최소한의 움직임으로 최대한의 효율을 내기 위해 노력한다.
대표적으로 엘리베이터 스케쥴링 기법을 사용한다.
엘리베이터의 과정과 비슷한데, 엘리베이터가 1층에서 100층까지 가다가 도중에 2층이나 50층에 멈춰서 사람을 태울 수 있듯이, 디스크 헤더도 읽으려는 파일의 위치로 가는 도중 새로운 파일 리딩 요청이 들어오면 그 요청부터 수행한다.
4 - 4) 입출력 관리
키보드, 마우스, 모니터 등 우리가 접하는 수많은 장치가 입출력 장치다. 이 I/O 디바이스들은 CPU에 비해 많이 느리다.
따라서 이 디바이스들과 컴퓨터가 어떠한 방식으로 정보를 주고 받는 지가 컴퓨터의 성능과 직결된다.
평상시에 CPU는 묵묵히 자신의 작업만 수행하다가, 디바이스로부터 인터럽트를 받게되면서 디바이스가 입력 데이터를 보내오는것을 알 수 있게 된다.
I/O 디바이스들은 각각 I/O 디바이스 컨트롤러라는 독자적인 작은 CPU를 갖고 있으며, 인터럽트라는 요소를 중심으로 컴퓨터와 정보를 주고 받는다.
5. 출처
반효경 교수님 KOCW 강의
'CS > OS (2022-1)' 카테고리의 다른 글
[OS] Process Management (0) | 2022.11.22 |
---|---|
[OS] Process - 2 (0) | 2022.11.21 |
[OS] Process - 1 (0) | 2022.11.21 |
[OS] System Structure & Program Execution 2 (0) | 2022.11.20 |
[OS] System Structure & Program Execution 1 (0) | 2022.11.19 |
댓글