해당 학습 문서는 KOREATECH의 김덕수 교수님의 유튜브 무료 강의를 바탕으로 정리되었습니다
무료 강의를 제공해주신 김덕수 교수님께 감사드립니다
https://www.youtube.com/watch?v=nxl_cUd55Ag&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=2
운영체제의 역할

User Interface(편리성)
- CUI(Character User Interface) → 문자 기반 인터페이스 ex) MS-DOS, shell
- GUI(Graphical User Interface) → 지금 여러분이 보고 있는 화면
- EUCI(End-User Comfortable Interface) → 특정 제품/유저 전용 인터페이스 ex)MP3 UI, 키오스크 UI
Resource management(효율성)
- HW resource (processor, memory, I/O devices, Etc.)
- SW resource (file, application, message, signal, Etc.)
Process and Thread management
System management(시스템 보호)
컴퓨터 시스템의 구성

커널
OS의 핵심 소프트웨어로, 컴퓨터 하드웨어를 관리하는 역할을 한다
System Call Interface
사용자가 직접 커널을 접근하기 어렵기 때문에 OS에 요청하는 통로가 된다. 시스템 라이브러리라고 부르기도 한다. 커널이 제공하는 기능들 중 사용자가 사용할 수 있는 기능의 모음
*참고
쉘(Shell)은 시스템 콜 인터페이스 자체가 아니라, 사용자가 운영체제의 기능에 접근하기 위해 시스템 콜을 호출하는 프로그램
각 구성 요소의 세부적인 역할

운영체제의 구분
동시 사용자 수
- Single-user system(Windows PC)
- Multi-user system(Unix/Linux server)
동시 실행 프로세스 수
- Single-tasking system
- Multi-tasking system (Multiprogramming system)
작업 수행 방식(사용자가 느끼는 사용 환경)
- Batch processing system
- Time-sharing system
- Distributed processing system
- Real-time system
동시 사용자 수
단일 사용자(Single-user system)
한 명의 사용자만 시스템 사용 가능
- 한 명의 사용자가 모든 시스템 자원 독점
- 자원관리 및 시스템 보호 방식이 간단 함
개인용 장비(PC, mobile) 등에 사용
- Windows 7/10, android, ios, MS-DOS 등
다중 사용자(Multi-user system)
동시에 여러 사용자들이 시스템 사용
- 각종 시스템 자원(파일 등) 들에 대한 소유 권한 관리 필요
- 기본적으로 Multi-tasking 기능 필요
- OS의 기능 및 구조가 복잡
서버 클러스터(cluster) 장비 등에 사용
- Unix, Linux, Windows server 등
동시 실행 프로세스(프로그램) 수
단일 작업 (Single-tasking system)
- 시스템 내에 하나의 작업(프로세스)만 존재
- 하나의 프로그램 실행을 마친 뒤에 다른 프로그램의 실행
- 운영체제의 구조가 간단
- 예) MS-DOS → Windows cmd와 비슷한 형태
다중작업 (Multi-tasking system)
- 동시에 여러 작업(프로세스)의 수행 가능 (지금 우리가 사용하는 시스템)
- 작업들 사이의 동시 수행, 동기화 등을 관리해야 함
- 운영체제의 기능 및 구조가 복잡
- 예) Unix/Linux, Windows 등
작업 수행 방식(운영체제 발전 역사)
Batch processing system
- 일괄처리 시스템
Time-sharing system
- 시분할 시스템
Distributed processing system
- 분산처리 시스템
Real-time system
- 실시간 시스템
순차 처리(No OS, ~1940s)

운영체제 개념이 존재하지 않음
- 사용자가 기계어로 직접 프로그램 작성
- 컴퓨터에 필요한 모든 작업 프로그램에 포함
- 프로세서에는 명령어 저장 방법, 계산 대상, 결과 저장 위치와 방법, 출력 시점, 위치 등

- 실행하는 작업 별 순차 처리
- 각각의 작업에 대한 준비 시간이 소요(ex 천공 카드마다 프로그래밍 언어가 다른 경우) → Batch System 등장
Batch Systems(1950s ~ 1960s)
모든 시스템을 중앙(전산계산소 등)에서 관리 및 운영
사용자의 요청 작업(천공카드 등)을 일정 시간 모아 두었다가 한 번에 처리

시스템 지향적(System-oriented)
시스템이 처리하기에 효율적인 운영 및 관리 법
장점
- 많은 사용자가 시스템 자원 공유
- 처리 효율(throughput) 향상
단점
- 생산성(productivity) 저하
- 같은 유형의 작업들이 모이기를 기다려야 함
- 긴 응답시간(turnaround time)
- 약 6시간 (작업 제출에서 결과 출력까지의 시간)
Time Sharing Systems(1960s~1970s)

여러 사용자가 자원을 동시에 사용
- OS가 파일 시스템 및 가상 메모리 관리
사용자 지향적(User-oriented)
- 대화형(conversational, interactive) 시스템 → 반응을 받을 수 있음
- 단말기(CRT terminal) 사용
terminal server를 통해서 사용자들의 input을 받고 중앙 OS를 통해 이를 연산하고 결과를 반환

장점
- 응답시간(response time) 단축 (약 5초)
- 생산성(productivity) 향상
- 프로세서 유휴 시간 감소
단점
- 통신 비용 증가
- 통신선 비용, 보안 문제 등
- 개인 사용자 체감 속도 저하
- 동시 사용자 수가 증가 → 시스템 부하 증가 → 느려짐(개인 관점)
Personal Computing
개인이 시스템 전체 독점
CPU 활용률(utilization)이 고려의 대상이 아님
- CPU를 최대로 활용할 필요가 없음 → 옛날에는 시스템을 최대한 사용하는 것을 목표로 개발했다(CPU가 비싼 자원이었다)
OS가 상대적으로 단순함
- 하지만, 다양한 사용자 지원 기능 지원 → 성능보다는 사용자 편리성을 고려
장점
- 빠른 응답시간
단점
- 성능(performace)이 낮음
Parallel Processing System
단일 시스템 내에서 둘 이상의 프로세서 사용
- 동시에 둘 이상의 프로세스 지원
메모리 등의 자원 공유 (Tightly-coupled system)

효율적이지만 프로그램 기능을 확장하는데 문제가 발생한다 (공간적 제약)
사용 목적
- 성능 향상
- 신뢰성 향상(하나의 가장 정상 동작 가능)
프로세서간 관계 및 역할 관리 필요
- 아래에서 하나의 CPU task가 실패해도 병렬 처리 시스템은 결과를 출력할 수 있다

- 물리적인 분산, 통신망 이용한 상호 연결
- 각각 운영체제 탑재한 다수의 범용 시스템으로 구성
- 사용자는 분산운영체제를 통해 하나의 프로그램, 자원처럼 사용 가능(은폐성, transparency)
- 각 구성 요소들간의 독립성 유지, 공동작업 가능
- Cluster system, client-server system, P2P 등
*참고
P2P란? 중앙 서버를 거치지 않고 여러 컴퓨터(피어)들이 서로 직접 연결되어 데이터를 주고받는 통신 방식
장점
- 자원 공유를 통한 높은 성능
- 고 신뢰성, 높은 확정성
단점
- 구축 및 관리가 어려움
- 비용 지출도 크다

Real-time Systems
작업 처리에 제한 시간(deadline)을 갖는 시스템
- 제한 시간 내에 서비스를 제공하는 것이, 자원 활용 효율보다 중요
작업(task)의 종류
- Hard-real-time task
- 시간 제약을 지키지 못하는 경우 시스템에 치명적인 영향
- 예) 발전소 제어, 무기 제어 등
- Soft real-time task
- 동영상 재생 등
- Non real-time task
운영체제의 구조


Application(응용 프로그램): 개발자가 작성한 일반 프로그램. 전부 user space에서 실행
Utilities도 user space에서 실행 되지만 OS가 제공하는 프로그램이다. 그에 비해 Application은 사용자가 직접 설치/개발 해야 한다.
💡user space(사용자 영역)란?
운영체제 커널의 보호를 받으며 애플리케이션 프로그램과 라이브러리가 실행되는 메모리 영역, 이를 제외한 메모리 영역을 kernel space라고 한다
커널(Kernel: 알맹이라는 뜻)
OS의 핵심 부분 (메모리 상주)
- 가장 빈번하게 사용되는 기능들 담당
- 시스템 관리(processor, memory Etc)등
동의어
- 핵(neucleus), 관리자(supervisor) 프로그램, 상주 프로그램( resident program), 제어 프로그램(control program) 등
유틸리티 (Utility) /OS에서 커널을 제외한 나머지 부분들
- 비상주 프로그램
- 커널과 다르게 필요할 때만 메모리에 로드되어 사용되는 프로그램
- UI등 서비스 프로그램
단일 구조 OS
모든 핵심 기능을 하나의 거대한 커널에 포함시킨 구조
C언어 프로그램으로 비유 하자면 main 함수 안에 모든 코드를 구현한 것

장점
- 커널 내 모듈간 직접 통신
- 효율적 자원 관리 및 사용
단점
- 커널의 거대화
- 오류 및 버그, 추가 기능 구현 등 유지보수가 어려움
- 동일 메모리에 모든 기능이 있어, 한 모듈의 문제가 전체 시스템에 영향( 예) 악성 코드 등)
계층 구조

장점
- 모듈화 →기능별로 구현 가능
- 계층간 검증 및 수정 용의
- 설계 및 구현의 단순화
단점
- 단일구조 대비 성능 저하
- 원하는 기능 수행을 위해 여러 계층을 거쳐야 함
마이크로 커널 구조
커널의 크기가 커지면서 커널 패닉(전 시스템 다운), 보안 확대, TLB 압박(커널은 메모리에 상주) 등 여러 문제 발생
TLB란?
- CPU는 가상주소 → 물리주소로 변환해야 메모리에 접근해요.
- 이 변환을 빠르게 하려고 TLB라는 작은 캐시(주소 변환 캐시)를 둡니다

커널의 크기 최소화
- 필수 기능만 포함
- 기타 기능은 사용자 영역에서 수행 (파일 시스템, 프로세서 스케줄링, 장치 관리자)
운영체제의 기능
Process Management
프로세스(Process)
- 커널에 등록된 실행 단위 (실행 중인 프로그램)
- 사용자 요청/프로그램의 수행 주체(entity)
OS의 프로세스 관리 기능
- 생성/삭제, 상태관리
- 자원 할당
- 프로세스 간 통신 및 동기화(synchronization)
- 교착상태(deadlock) 해결
프로세스 정보 관리
- PCB(Process Control Block)
Processor Management
중앙 처리 장치(CPU)
- 프로그램을 실행하는 핵심 자원
프로세스 스케줄링(Scheduling)
- 시스템 내의 프로세스 처리 순서 결정
프로세서 할당 관리
- 프로세스들에 대한 프로세서 할당
- 한 번에 하나의 프로세스만 사용 가능
Memory Management
주기억장치
- 작업을 위한 프로그램 및 데이터를 올려 놓는 공간
Multi-user, Multi-tasking 시스템
- 프로세스에 대한 메모리 할당 및 회수
- 메모리 여유 공간 관리
- 각 프로세스의 할당 메모리 영역 접근 보호
메모리 항당 방법(scheme)
- 전체 적재
- 장점: 구현이 간단/ 단점: 제한적 공간
- 일부 적재 (virtual memory concept)
- 프로그램 및 데이터 일부만 적재
- 장점: 메모리의 효율적 활용/ 단점: 보조 기억 장치 접근 필요
File Management
파일: 논리적 데이터 저장 단위
사용자 및 시스템의 파일 관리
디렉토리(directory) 구조 지원
디렉토리 : 컴퓨터에서 파일을 체계적으로 관리하고 저장하기 위해 사용하는 저장 공간
파일 관리 기능
- 파일 및 디렉토리 생성/삭제
- 파일 접근 및 조작
- 파일을 물리적 저장 공간으로 사상(mapping)
- 백업 등
I/O Management
입출력(I/O) 과정
- OS를 반드시 거쳐야 함

Others
Disk
Networking
Security and Protection system
System call interface
- 응용 프로그램과 OS 사이의 인터페이스
- OS가 응용 프로그램에 제공하는 서비스
노션 링크
https://www.notion.so/OS-2-2f19d2a6b97580f78e2bd6f1af90eeb1
자료 정리
excalidraw를 통해 파일을 open 하시면 자료를 수정 및 복사할 수 있습니다
'운영체제' 카테고리의 다른 글
| [OS] 4강 스레드 관리 (0) | 2026.01.23 |
|---|---|
| [OS] 3강 프로세스 관리 (0) | 2026.01.07 |
| [OS] 1강 컴퓨터 시스템의 개요 (0) | 2026.01.02 |