반응형
더보기
목차
- 컴퓨터의 기원
- Hand-operated System
- Batch System
- Automatic Job Sequencing
- Spooling Batch System
- Multiprogramming
- Timesharing
- Multitasking
- Lineage of Well-known Operating Systems
컴퓨터의 기원
- Compute + er
- 계산을 수행하는 장치 또는 사람
- 2차 세계대전
- 군사 목적으로 암호 해석, 미사일 탄도 분석, 물리 계산 등을 위해 개발됨
ex) 영화 이미테이션 게임 (앨런 튜링의 암호 해독 작업과 초기 컴퓨터 역할 묘사)
- 군사 목적으로 암호 해석, 미사일 탄도 분석, 물리 계산 등을 위해 개발됨
Hand-operated System
- 1950년대 초반
- 기계적인 스위치로 1bit 단위로 컴퓨터에 입력해서 사람이 물리적으로 실행
- 오류가 발생하면 프로그램 전체를 다시 실행
- 1950년대 중반
- 플러그 보드에 와이어링을 통해 컴퓨터의 기능을 제어
- 프로그래밍 언어 및 운영체제 존재가 없음(영구적인 저장장치가 없음 = 매번 프로그램 다시 입력)
- 1960년대 초반
- 펀치 카드 등장
- 프로그래밍한 카드로 컴퓨터 구동(플러그 보드 대체)
Mainframe - 일괄 처리 (Batch)
초기 운영체제 개념 등장
- job 이 끝나고 다음 job 이 수행됨
- 펀치 카드로 제출 => 메모리에 적재, 수행의 순서로 진행
- 결과를 받기 전까지 사용자가 관여하지 못함
- 사람이 job 을 scheduling 함
- CPU 가 Idle 상태로 전환됨
*idle 상태 : I/O 장치와 CPU 사이의 속도차로 인해 I/O 작업이 진행되는 동안 CPU 가 대기하는 상태
Automatic Job Sequencing
- 사람의 관여 없이, 여러 개의 프로그램을 자동으로 순차적으로 실행
- I/O 에 의해 CPU 가 Idle 상태로 전환되는 문제 해결 X
Spooling (Simultaneous Peripheral Operation On-Line)
- I/O 데이터를 disk 나 memory 의 buffer 에 임시 저장하여 CPU 가 I/O 작업을 기다리지 않고 다른 작업을 처리 가능
- 여러 작업이 동시에 진행될 수 있음
ex) 프린터 작업 요청을 disk 의 buffer 에 저장하고, 프린터가 준비되면 순차적으로 처리
Multiprogramming
- 2개 이상의 Job 을 메모리에 동시에 유지하며, CPU 는 I/O 작업 대기 중인 작업을 넘어 다른 작업을 실행
ex) Job1 이 I/O 작업을 요청하면, CPU 는 즉시 Job2 를 실행 => Job1 이 다시 실행 가능해지면, CPU 는 Job1 로 전환(Context Switching) - First Come First Served
- CPU utilization 증가 (CPU Idle time 감소)
- 문제점
- 사용자는 실행중인 작업에 관여할 수 없음
- 다른 Job 이 실행이 되기 위해서는 현재 수행되는 Job 이 I/O 를 해야 한다 (Voluntary Yield 에 의존)
- High Priority 를 수행할 필요가 생김
- 공평성을 유지할 필요가 발생
Timesharing
- CPU 실행 시간을 Time Slice 로 나누어 프로그램들에 순차적으로 할당
- CPU 가 여러 프로그램을 빠르게 빈번하게 전환하며 실행(Context switching), 동시에 실행되는 것처럼 보임
ex) Job1 실행하다가 10ms 되면 멈추고, Job2 실행하다가 10ms 되면 멈춘다
Multitasking
- 여러 개의 Task 들이 CPU 같은 자원을 공유하도록 하는 방법
- 하나의 Job 을 동시에 실행할 수 있는 Task 로 나눔
ex) 웹 브라우저가 동시에 페이지 로드, 파일 다운로드, 사용자 입력 처리 - CPU 가 Idle 상태일 때도 background 작업이 실행됨
- ISSUE
- 복잡한 메모리 관리 시스템 : 여러 프로그램이 동시에 메모리에 상주하므로, 메모리 자원을 효과적으로 할당하고 보호하는 시스템이 필요
- 적절한 응답 시간을 제공 : Job 들이 메모리에서 disk 로 Swap In/Out 될 수 있음
- Concurrent Execution 제공 : 여러 Job 이 동시에 실행되는 것처럼 보이도록 CPU scheduling 이 필요함
- 필요에 따라 Job 들 간의 Orderly Execution 이 필요 : 여러 Job 들이 서로의 실행 순서를 방해하지 않도록 동기화가 필요함 (deadlock 이 발생할 수 있음)
* deadlock (교착상태) : 잘못된 자원 관리로 인하여 둘 이상의 프로세스들이 아무것도 진행하지 않는 상태
ex) A가 B를 기다리고, B가 A를 기다림
그 외 시스템
- Multiprocessor Systems
- Symmetric Multiprocessors : 모든 프로세서가 동등한 역할을 수행하며, 자원을 공유
- Asymmetric Multiprocessors : 한 프로세서가 다른 프로세서를 관리하며, 역할이 구분됨
- 분산 시스템 : 여러 시스템이 LAN/WAN 으로 연결되어 하나의 작업을 공동 수행
- Clustered Systems : 여러 시스템이 네트워크로 연결되어 공통 목표를 위해 작업 수행
- Embedded Systems : 특정 목적을 위한 시스템
- Real-time Systems : 시스템에서 수행하는 작업의 완료 시간(Deadline) 이 정해짐
반응형
'3학년 2학기 학사 > 운영체제' 카테고리의 다른 글
[운영체제] #9. 동기화 (1) (0) | 2024.11.27 |
---|---|
[운영체제] #7. InterProcess Communication (IPC) (0) | 2024.11.26 |
[운영체제] #5. Computer Architecture (0) | 2024.11.24 |
[운영체제] #4. Process (0) | 2024.11.20 |
[운영체제] #3. 운영체제 구조 (2) (0) | 2024.11.19 |