조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다
1. 소개
프로그래밍의 도입
- 초기 컴퓨터는 설계된 대로만 사용할 수 있었습니다.
- 사용자의 개입이나 프로그래밍 구현이 부족했습니다.
- 프로그래밍을 통해원하는 프로그램을 추가하고 실행할 수 있게 되었습니다.
기능
기능 | 설명 |
자원 관리 |
- 프로그램이 사용하는 자원을 관리
- 자원 종류: 메모리, CPU 시간, 디스크 공간, 네트워크 대역폭 등 |
사용자 인터페이스 제공 |
- 사용자가 시스템과 상호작용할 수 있도록 지원
- 프로그램이 데이터를 처리하고 사용자에게 전달하는 방식 - GUI, CLI 등 다양한 인터페이스 제공 |
동시성 관리 |
- 병렬 처리를 통해 여러 작업을 동시에 실행할 수 있도록 지원
- 동시 실행에 필요한 자원 및 스케줄링 관리 |
2. 역사
발전 과정 | 특징 |
ENIAC |
- 세계 최초의 전자 디지털 범용 컴퓨터
- 대규모 데이터 처리 (회계, 급여 계산, 통계 분석 등) - 약 18,000개의 진공관 사용 - 거대한 크기 (30톤) |
일괄작업 시스템 |
- 사용자와의 상호작용 부재
- 작업을 스케줄링하여 실행 - 프로그램과 데이터를 한 번에 입력 후 자동 실행 |
대화형 시스템 |
- 사용자와 컴퓨터 간의 양방향 커뮤니케이션 (키보드, 모니터 사용)
- 실시간 처리 가능 - 프로그램 실행 중 사용자 입력 및 중간 결과값 표시 가능 |
시분할 시스템 |
- 다중 프로그래밍: 하나의 CPU를 여러 프로세스가 공유
- CPU 시간을 짧은 단위로 나누어 여러 작업에 할당 - 자원의 효율적 사용, CPU 대기시간 감소 |
다중 사용자 시스템 (유닉스) |
- 여러 사용자가 동일 시스템을 동시에 사용 가능
- 각 사용자는 고유한 계정을 가짐 - 여러 사용자에 의한 자원 공유 허용 |
분산 시스템 |
- 여러 개의 개별 컴퓨터(노드)가 네트워크를 통해 협력하여 작업 수행
- 분리된 컴퓨터들이 논리적으로 하나의 통합된 시스템처럼 작동 |
클라이언트-서버 시스템 |
- 작업 요청자(클라이언트)와 응답자(서버)로 나뉜 이중 구조
- 서버가 클라이언트의 요청을 처리하는 방식 |
P2P 시스템 | - 서버 없이 클라이언트끼리 직접 연결 - 서버 과부하 문제 해결 목적 |
클라우드 컴퓨팅 |
- 인터넷을 통해 서버, 스토리지 등의 컴퓨팅 서비스 제공
- 유연한 자원 할당 및 확장 가능 |
3. 역할
역할 | 설명 |
안정성 (자원 보호) |
- 사용자가 직접 자원에 접근하지 못하도록 제한
- 자원을 보호하고 관리하여 시스템의 안정성 유지 - 문제가 발생하면 이전 상태로 복구 (결함 포용) |
효율성 (자원 관리) |
- 스케줄링: 자원을 어떤 프로그램에 어떤 순서로 할당할지 결정
- 독점 방지: 특정 프로그램이 자원을 독점하는 것을 막아 공정한 자원 할당 유지 |
확장성 (하드웨어 인터페이스) |
- Plug & Play 지원: 하드웨어 종류와 관계없이 연결 후 바로 사용 가능
- 다양한 하드웨어 자원의 추가 및 제거가 용이 (단, 드라이버 필요) |
편의성 (사용자 인터페이스) |
- 사용자가 시스템과 쉽게 상호작용할 수 있도록 인터페이스 제공 (GUI, CLI 등)
|
4. 구조
커널
- 사용자와 시스템의 인터페이스 역할을 담당합니다.
- 운영체제의 핵심이 되는 프로그램 입니다.
기능
- 프로세스 관리, 메모리 관리, 저장장치 관리 등
시스템 호출
- 커널이 자신을 보호하기 위해 만든 인터페이스 입니다.
- 커널이 제공하는 서비스를 시스템 호출로 제한함으로써 컴퓨터 자원을 보호합니다.
디바이스 드라이버
- 커널과 하드웨어의 인터페이스 입니다.
- 하드웨어의 특징이 반영된 프로그램으로 커널이 실행될 때 같이 실행됩니다.
- 이를 통해 커널이 하드웨어를 제어할 수 있습니다.
출처
'OS' 카테고리의 다른 글
[쉽게 배우는 운영체제] 4-2. CPU 스케줄링: 인터럽트 처리 (0) | 2024.12.12 |
---|---|
[쉽게 배우는 운영체제] 4-1. CPU 스케줄링: 스케줄링 (0) | 2024.12.12 |
[쉽게 배우는 운영체제] 3-2. 프로세스와 스레드: 스레드 (0) | 2024.12.12 |
[쉽게 배우는 운영체제] 3-1. 프로세스와 스레드: 프로세스 (0) | 2024.12.11 |
[쉽게 배우는 운영체제] 2. 컴퓨터의 구조와 성능 향상 (0) | 2024.01.11 |