OS의 역사
1940년대
Card reader > memory > processing > line printer
직접 기계어를 사용하여 모든 명령어를 코딩
1950년대
Batch processing system (일괄처리)=resident monitor
: 여러 동작을 한번에 처리
1960년대 초
Multiprogramming system (다중프로그래밍)
- 컴퓨터는 비싼 자원
- 빠른 CPU, 느린 I/O 때문에 CPU가 놀 수 있다-> 메모리에 여러 개의 job
- CPU scheduling, 메모리 관리, 보호
1960년대 초
Time-sharing system (시공유 시스템)
- 강제 절환(switch) interactive system(대화형)
- 가상 메모리, 프로세스 간 통신, 동기화
현대
Interrupt-Based System(인터럽트 기반 시스템)
인터럽트란(=새치기)?
CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치에 예외상황이 발생하여 처리가 필요할 경우에 CPU에게 알려 처리할 수 있도록 하는 것을 말한다.
- 부팅이 끝나면?
- OS는 메모리에 상주(resident)
- 사건을 기다리며 대기: 키보드, 마우스, ...
- 하드웨어 인터럽트
- 인트럽트 결과 OS 내의 코드 실행(ISR)
- Interrupt Service Routine 종료 후 다시 대기
- 소프트웨어 인터럽트
- 사용자 프로그램이 실행되면서 소프트웨어 인터럽트(운영체제 서비스 이용을 위해)
- 인터럽트 결과 OS 내의 특정 코드 실행(ISR)
- ISR 종료 후 다시 사용자 프로그램으로