- Computer = CPU + Memory
- 입출력(I/O) 장치
중앙 처리 장치(Central processing unit)
컴퓨터 시스템을 통제하고, 프로그램의 연산을 실행하고 처리하는 컴퓨터 시스템의 핵심 장치
- 산술 논리 장치(ALU) : 연산 수행
- 컨트롤 장치(CU) : 제어 명령 전달
- Register : 결과 값을 일시적으로 기억하는 장치
주 기억 장치
용량이 매우 작은 CPU의 Register을 대신해, 정보를 저장해 두었다가 필요할 때 읽어 들여 이용할 수 있는 장치
- 컴퓨터가 켜지면 운영체제, 사용자 프로그램들이 해당 Memory에 올라가게 되고 → CPU는 Memory에서 프로그램들의 명령어를 읽어와 작업 수행
- ROM, RAM 등
입출력 장치
사용자가 원하는 문자나 그림의 데이터를 컴퓨터로 전달하거나 출력하는 장치
- 입력장치 : 키보드, 마우스 등
- 출력장치 : 모니터, 프린터 등
# 순서
1. system call : 사용자 프로그램이 OS에 I/O 요청
2. trap : 인터럽트 벡터의 특정 위치로 이동
3. 제어권 이동 : 인터럽트 벡터가 가리키는 인터럽트 서비스 루틴으로 이동
4. I/O 확인 : 올바른 I/O 요청인지 확인
5. I/O 수행
6. I/O 완료 : 제어권을 system call 다음 명령으로 옮김
장치 제어기; 해당 I/O 장치 유형을 관리하는 일종의 작은 CPU; HW
※ I/O가 끝났을 경우 Interrupt로 CPU에 그 사실을 알림
타이머; Time Sharing; 특정 프로그램 CPU 독점 방지
※ 정해진 시간이 흐른 뒤 OS에 제어권이 넘어가도록 Interrupt 발생시킴
-1
0
이 되면 → Interrupt
DMA(Direct Memory Access)
- 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용
- 인터럽트가 호출된 시점의 register와 program counter를 save
- CPU의 제어를 인터럽트 처리 루틴에 넘김
사용자 프로그램이 OS의 서비스를 받기 위해 커널 함수를 호출하는 것
이름 | 정의 |
---|---|
동기식 입출력 | I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램으로 넘어감 |
비동기식 입출력 | I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감 |
장치 | 휘발성 | 속도 | 크기 | 가격 |
---|---|---|---|---|
주기억 장치 | O | O | 큼 | 비쌈 |
보조기억장치 | X | X | 작음 | 쌈 |
종류 | 설명 |
---|---|
사용자 정의 함수 | 자신의 프로그램에서 정의한 함수 |
라이브러리 함수 | 자신의 정의하지 않고 가져다 쓴 함수; 실행 파일에 포함 |
커널 함수 | 운영체제 프로그램의 함수 |