조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다
1. 소개
프로그래밍의 도입
- 초기 컴퓨터는 설계된 대로만 사용할 수 있었습니다.
- 사용자의 개입이나 프로그래밍 구현이 부족했습니다.
- 프로그래밍을 통해원하는 프로그램을 추가하고 실행할 수 있게 되었습니다.
자원관리 및 사용자 인터페이스 제공
- 이때, 프로그램이 사용하는 자원을 관리하고 사용자 인터페이스를 제공합니다.
동시성 관리
- 하드웨어의 발전으로 병렬 처리가 가능해지면서, 여러 작업을 동시에 실행할 수 있게 되었습니다.
- 병렬 실행에 필요한 동시성 관리의 역할을 합니다.
2. 역사
ENIAC
- 세계 최초의 전자 디지털 범용 컴퓨터
- 대규모 데이터 처리에 사용되었습니다 (회계, 급여 계산, 통계 분석)
진공관 컴퓨터
- 약 18,000개의 진공관을 사용하였습니다.
- 거대한 크기 (30톤)
하드와이어링 방식
- 프로그래밍을 위해 기계 자체를 물리적으로 재구성하여 수행했습니다.
- 전선에 잭을 꼽아 회로를 구성하였습니다.
주변장치 X
- 데이터 저장: 전자식 누산기와 진공관으로 수행
일괄작업 시스템 (Batch Processing System)
사용자와의 상호작용 부재
- 사용자의 개입 없이 작업을 스케줄링하여 실행
- 작업에 필요한 프로그램과 데이터를 한번에 입력한 후, 자동으로 작업을 실행합니다.
대규모 데이터 처리
- 회계, 급여 계산, 통계 분석 등의 작업에서 사용됩니다.
대화형 시스템
양방향 커뮤니케이션
- 사용자와 컴퓨터 간의 양방향 커뮤니케이션을 기반으로 하는 컴퓨터 처리 방식입니다.
- 키보드와 모니터를 사용합니다.
실시간 처리
- 사용자의 입력에 실시간으로 응답합니다.
- 입력값에 따라 작업의 흐름을 바꾸는 것도 가능해졌습니다.
- 프로그램 실행 중간에 사용자 입력 및 중간 결과값을 보여줄 수 있게 되었습니다.
장점
- 사용자 경험이 향상됩니다.
시분할 시스템
다중 프로그래밍
- 하나의 CPU를 여러 프로세스가 공유하여 사용하도록 합니다.
- 여러 프로그램을 동시에 실행할 수 있게 합니다.
CPU 시간 분할
- CPU 시간을 짧은 단위로 나누어 여러 작업에 할당하는 방식으로 다중 프로그래밍을 수행합니다.
- 여러 작업간에 컴퓨터 자원을 분할하여 사용합니다.
장점
- 자원의 효율적 사용
- CPU의 대기시간이 줄어드는 효과를 가져오므로 효율적인 자원 사용이 가능합니다.
다중 사용자 시스템 (유닉스)
사용자 계정
- 각 사용자는 고유한 계정을 가지며, 이를 통해 시스템에 로그인합니다.
- 여러 사용자가 동일 시스템을 동시에 사용할 수 있습니다.
자원 공유
- 여러 사용자에 의한 동시 접근을 허용하는 시스템입니다.
분산 시스템
- 여러 개의 개별 컴퓨터(노드)가 네트워크를 통해 협력하여 작업을 수행하는 시스템
- 분리된 컴퓨터들이 논리적으로 하나의 통합된 시스템처럼 작동합니다.
클라이언트-서버 시스템
- 작업 요청자와 응답자 형태의 이중 구조로 나뉘어진 시스템입니다.
P2P 시스템
- 서버를 거치지 않고 클라이언트끼리 직접 연결하는 시스템입니다.
- 서버 과부하 문제 해결을 위해 생긴 시스템입니다.
클라우드 컴퓨팅
- 인터넷을 통해 서버, 스토리지 등의 컴퓨팅 서비스를 제공하는 것입니다.
3. 역할
안정성 (자원 보호)
자원 접근 제한
- 사용자가 직접 자원에 접근하는 것을 막습니다.
- 자원을 보호하고 관리하기 위함입니다.
결함 포용
- 문제가 발생했을 때 이전으로 복구합니다.
효율성 (자원 관리)
스케줄링
- 자원을 어떤 프로그램에 어떤 순서로 할당할 지 결정하는 프로세스 입니다.
- 자원이 각 프로그램에 공평하게 분배하도록 스케줄링 합니다.
독점 방지
- 특정 자원이 특정 프로그램에 의해 독점되는 것을 방지합니다.
- 이를 통해 시스템이 안정적으로 유지되고, 자원이 모든 프로그램에 공정하게 할당되도록 합니다.
확장성 (하드웨어 인터페이스)
Plug & Play
- 하드웨어의 종류와 상관없이 꽂으면 바로 실행할 수 있습니다.
- 다양한 하드웨어 자원을 추가하거나 제거하기 편리합니다.
- 단, 드라이버가 설치되어 있어야 합니다.
편의성 (사용자 인터페이스)
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 |