운영체제
: 하드웨어 바로 위에 위치하고 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
목적
1) 사용자가 편리하게 컴퓨터 시스템을 이용하도록 지원
2) 컴퓨터 시스템의 자원을 효율적으로 관리
- 주어진 자원들로 최대의 성능
- 자원들간의 형평성 유지
분류
1) 동시 작업 가능 여부
- 단일 작업
- 다중 작업
2) 사용자의 수
- 단일 사용자
- 다중 사용자
처리 방식
- 일괄 처리
- 시 분할
- 실시간
mode bit
사용자 모드 (mode bit = 1) : 사용자 프로그램 수행
모니터 모드 (mode bit = 0) : 운영체제 코드 수행
특권 명령(ex. I/O device 접근)은 모니터 모드에서만 수행 가능
시스템콜 : 사용자 프로그램이 운영체제의 도움을 받기 위해 커널 함수를 호출
timer
: 특정 프로그램의 CPU 독점을 막기 위해 정해진 시간이 흐른 뒤 운영체제에게 CPU 제어권이 넘어가도록 인터럽트를 발생시킴
인터럽트
- time out에 의한 인터럽트
- 시스템콜에 의한 인터럽트
- 프로그램의 오류로 인한 인터럽트
- 하드웨어가 발생시킨 인터럽트
device controller
: I/O 작업을 관리하는 일종의 작은 CPU
CPU가 I/O 작업을 요청하면 I/O 작업 처리 -> 작업 완료시 CPU에 인터럽트로 완료 소식을 알림
동기식 / 비동기식 입출력
1) 동기식 입출력
- I/O 작업이 끝날 때까지 CPU 사용을 멈췄다가 작업이 끝나면 사용
- I/O 작업이 진행되는 동안 CPU를 빼앗아 다른 프로그램에 넘기고 I/O 작업 처리를 기다리는 줄에 세움
2) 비동기식 입출력
: I/O 작업 진행 여부와 상관없이 다음 일 진행
DMA
: CPU의 중재 없이 device controller가 buffer storage의 내용을 메모리에 블록 단위로 전송하여 인터럽트 횟수를 줄여줌
1. I/O 장치가 CPU에 I/O 요청
2. CPU가 DMA controller에 명령 송신
3. DMA가 CPU에 시스템 버스 사용 요청
4. 사용 허가 (CPU는 시스템 버스 사용 불가)
5. DMA controller가 I/O 장치에서 데이터를 읽은 후 메모리로 전송