해당 정리는 youtube HPC Lab. KOREATECH의 OS 강의를 듣고 정리한 내용이다.
강의 자료는 https://hpclab.tistory.com/1?category=887083 해당 링크에 있다.
운영체제는 컴퓨터 하드웨어를 효율적으로 관리해서 사용자 or 응용 프로그램에게 서비스를 제공하는 시스템이다.
운영체제의 역할은 크게 4가지가 있다.
- User Interface(편리성)
- Resource management(효율성)
- Process and Thread management
- System management(시스템 보호)

컴퓨터 시스템의 구성에 대해서 알아보자
위 그림은 컴퓨터 시스템 구성의 그림이다.
OS는 (System call Interface , Kernel)을 의미한다.
OS는 Application Process와 HardWare사이에 존재하면서 HardWare를 관리하고 Application Process에 필요한 서비스를 제공한다.
System call Interface와 Kernel에 대해서 간략하게만 설명해 보자면
- System call Interface : Application Process가 Kernel에 요청하는 통로(함수 형태)이다. 좀 더 구체적으로 정의하자면, 커널 기능 중에 사용자가 사용할 수 있는 인터페이스 모음이라고 보면 된다.
- Kernel : OS의 핵심 부분으로 가장 비번하게 사용되는 기능
Sysem call Interface가 필요한 이유는 사용자가 직접커널을 액세스 할 경우 문제가 생기기 때문에 위와 같이 System call Interface를 둬서 문제를 해결한다.
운영체제는 3가지 관점에서 구분할 수 있다.
- 동시 사용자 수
- 동시 실행 프로세스 수
- 작업 수행 방식
3가지 관점에서 운영체제를 어떻게 구분하는지 알아보자
동시 사용자 수
동시 사용자 수로 운영체제를 구분했을 때, 단일 사용자, 다중 사용자로 구분할 수 있다.
단일 사용자
- 한 명의 사용자만 시스템 사용 가능
- 한 명의 사용자가 모든 시스템 자원 독점한다.
- 자원관리 및 시스템 보호 방식이 간단하다는 특징이 있다.
- 개인용 장비에서 사용
- window, android, mac 등
다중 사용자
- 동시에 여러 명이 시스템 사용
- 각종 시스템 자원들에 대한 소유 권한 관리가 필요하다.
- 기본적으로 Multi-tasking 기능이 필요로 하다.
- os의 기능 및 구조가 복잡하다.
- 서버, 클러스터 장비 등에 사용
- Unix, Linux, Window Server 등
동시 실행 프로세스 수
즉 동시 프로그램을 기준으로 구분했을 때, 단일 작업, 다중작업으로 구분할 수 있다.
단일작업
- 시스템 내의 하나의 작업만 존재한다(이때 작업은 프로세스를 의미)
- 하나의 프로그램 실행을 마친 뒤에 다른 프로그램을 실행
- 운영체제 구조가 간단하다.
- ex) MS-DOS
다중작업
- 동시에 여러 작업의 수행이 가능하다.
- 작업들 사이의 동시 수행, 동기화 등을 관리해야 한다.
- 운영체제의 기능 및 구조가 복잡하다.
- ex) Unix/Linux, window 등
작업 수행 방식
작업 수행의 방식에 따라 일괄처리 시스템, 시분할 시스템, 분산처리 시스템, 실시간 시스템 4가지로 구분이 가능하다.
(컴퓨터 역사를 기준으로 수행방식의 발전이다.)
순차 처리(~ 1940s)
- 운영체제 개념이 존재하지 않았을 때 순차 처리 방식으로 진행했다(컴퓨터가 막 생겨났을 시점)
- 사용자가 기계어로 직접 프로그램을 작성한다.
- 이때 컴퓨터에 필요한 모든 작업 프로그램을 포함한다(명령어 저장방법, 계산 대산, 결과 저장 위치 등등)
- 실행하는 작업 별 순차적으로 처리했다.
- 각 작업에 대한 준비 시간이 소요됐다(A언어를 사용하다 B언어로 바꿀 때 컴퓨터 시스템 전체를 바꾸는 거 와 같은 행위)
여담으로 천공카드를 사용했다고 한다.
위 방식을 예를 들어서 설명하면 (그때당시에는 c, python, java이 없었지만, 예를 들어서 설명하자면) 어떤 사람이 c언어를 프로그래밍해서 컴퓨터에 실행시키려면 c언어에 맞춰서 환경 설정을 싹 다 진행한 후 컴퓨터에 천공카드를 넣는다 이후 다른 사람이 java를 사용하기 위해 환경 설정을 java로 세팅하는 비효율적인 방식이다.
Batch Systems(일괄처리 시스템)(1950s ~ 1960s)
- 모든 시시스템을 중앙에서 관리 및 운영했다. (중앙 = 전자계산소)
- 사용자의 요청을 일정시간 모아 두었다가 한 번에 처리하는 방식이다.
위 순차처리에서의 문제점은 사용자가 바뀔 때 환경설정을 다시 해줘야 한다는 번거로움이 존재한다. 일괄처리 시스템은 그러한 번거로움을 해결하기 위해 같은 환경에서 동작하는 프로그램을 모아뒀다가 한 번에 처리하는 방식이다.
이러한 일괄처리 시스템은 시스템 지향적이라고 볼 수 있다.
- 장점
- 많은 사용자가 시스템 자원을 공유한다.
- 처리 효율이 향상된다.
- 단점
- 생산성이 저하된다. → 같은 유형의 작업들이 모이기를 기다려야 하기 때문
- 응답시간이 길어진다.
Time Sharing Systems(시분할 시스템)(1960s ~ 1970s)

위 그림과 같이 프로그램을 시간을 나눠서 사용하는 것을 의미한다 (요즘 방식의 초안)
- 여러 사용자가 자원을 동시에 사용한다 ( os가 파일 시스템 및 가상 메모리 관리가 필요했다)
- 사용자 지향적이다
- 대화형 시스템(조금씩 프로그램을 해놓기 때문에 반응이 존재)
- 단말기에 사용
- 장점
- 응답시간이 줄어들었다.
- (사용자 측면에서) 생산성이 향상되었다.
- 단점
- 통신 비용이 증가했다.
- 개인 사용자 체감 속도가 저하됐다. → 동시 사용자 수가 많아질 경우 그만큼 시스템 부하도 많아질 것이고 이는 곧 성능저하가 생긴다.
parallel Processing System(병렬 처리 시스템)
- 단일 시스템 내에서 둘 이상의 프로세서가 사용되는 것을 의미함
- 메모리등의 자원을 공유한다.
- 분산처리 시스템을 사용하게 된 이유는 성능 향상, 신뢰성 향상을 목적으로 두고 있다. 신뢰성 향상이란 하나가 고장이 나더라도 정상적으로 동작이 가능하다는 것을 의미한다)
- 각각의 프로세서간 관계 및 역할 관리가 필요하다.
Distributed Processing System(분산 처리 시스템)

네트워크를 기반으로 구축된 병렬 처리 시스템을 의미한다.
- 물리적인 분산, 통신망을 이용한 상호 연결
- 각각 운영체제 탑재한 다수의 범용 시스템으로 구성한다
- 사용자는 분산운영체제를 통해 하나의 프로그램, 자원처럼 사용 가능하다
- 각 구성 요소들 간의 독립성유지, 공동작업이 가능하다.
- 장점
- 자원 공유를 통한 높은 성능
- 고신뢰성 높은 확장성
- 단점
- 구축 및 관리가 어렵다
Real-time System(실시간 시스템)
- 작업 처리에 제한 시간을 갖는 시스템
실시간 시스템의 작업 종류는 3가지로 나눌 수 있다
- Hard real-time task
- 시간 제약을 지키지 못하는 경우 시스템에 치명적인 영향을 끼치는 경우
- 예, 발전소 제어, 무기 제어 등등
- Soft real-time task
- 동영상 재생
- Non real-time task
운영체제 구조
운영체제는 크게 커널과 유틸리티로 이루어져 있다.
- 커널
OS의 가장 핵심적인 부분으로 항상 메모리에 올라와 있다.
메모리에 상주하는 이유는 가장 빈번하게 사용되는 기능을 담당하기 때문이다(ex> 시스템 관리 등등)
- 유틸리티
메모리에 항상 올라와 있지 않는 비상주 프로그램을 의미한다(가끔씩 쓰이는 것)
운영체제는 단일구조, 계층구조, 마이크로 커널 구조 이렇게 3가지로 구분할 수 있다.
단일구조

운영체제 기능을 하나의 커널에 모아두는 구조
장점
- 커널 내 모듈 간 직접적으로 통신이 가능하다.(효율적인 자원 관리 및 사용이 가능)
단점
- 커낼이 거대해진다. 이는 곧 유지보수가 어려워진다.
- 또한 하나의 커널에 모든 것이 있기 때문에, 한 모듈의 문제가 전체 시스템에 영향을 끼친다.
계층구조

계층적으로 영역을 나눈 구조
장점
- 모듈화로 되어있어 계층 간 검증 및 수정이 용의 하다
- 설계 및 구현이 단순하다(각각의 기능에만 초점을 맞추면 되기 때문)
단점
- 단일구조 대비 성능이 저하된다. (이유 : 원하는 기능 수행을 위해 여러 계층을 거쳐야 하기 때문)
마이크로 커널 구조

커널 내 필수 기능만 포함한 구조
커널의 크기를 최소화한다.
필수 기능 왜 나머지 기타 기능은 사용자 영역에서 수행한다.
운영체제의 기능
운영체제 기능에 대해 추후 알아볼 예정이다.
운영체제는 컴퓨터 내 많은 것을 관리한다(프로세스, 프로세서, 메모리, 파일, 입출력, 보조 기억 장치 & 기타 주변 장치)
'CS 지식 > Operating System' 카테고리의 다른 글
| 운영체제 6 - (Process Synchronization & Mutual Exclusion) (1) | 2024.07.15 |
|---|---|
| 운영체제 5 - (Process Scheduling) (0) | 2024.07.14 |
| 운영체제 - 4 (Thread management) (0) | 2024.07.11 |
| 운영체제 - 3 (Process Management) (0) | 2024.07.11 |
| 운영체제 - 1 컴퓨터 시스템 개요 (1) | 2024.07.08 |