1. 시스템 호출 (System Call)
- 시스템 호출: 사용자 프로그램이 운영체제(OS)에게 I/O 작업을 요청하는 것.
- WRITE 함수 호출: 사용자가 호출하는 명령문이 아닌 함수 호출이다.
- 예: print, scanf는 명령문이 아닌 함수 호출문이다.
- 4번 코드는 사용자 프로그램의 일부가 아닌 운영체제의 일부이다.
- 입출력 작업은 OS가 수행한다.
- 4번 코드는 인터럽트가 아니며, 단순히 시스템 호출을 수행한다.
2. I/O 인터럽트 (Interrupt)
- I/O 인터럽트: OS가 입출력을 기다리는 동안 다른 프로그램을 실행하고, 입출력이 완료되면 실행 중인 프로그램에 인터럽트를 걸어 작업을 중단시킨다.
- 예: 프로그램 A → 프로그램 B로 전환, 프로그램 A의 입출력이 완료되면 프로그램 B에 인터럽트 발생.
- **인터럽트 핸들러(Interrupt Handler)**가 5번 코드를 처리하며, 4번 코드는 시스템 호출일 뿐이다.
3. 메모리와 레지스터 변경 (Changes in Memory and Registers)
- 인터럽트 처리 과정:
- 왼쪽 그림: CPU 상태를 저장.
- 오른쪽 그림: OS가 작업을 마치고 프로그램 상태를 복구.
4. 사용자 프로그램과 인터럽트 서비스 루틴
- 사용자 프로그램: 현재 PC에 N + 1이 저장되어 있으며, User Program의 N 명령어를 실행 중.
- 인터럽트 서비스 루틴: OS의 코드로, 인터럽트 핸들러가 처리.
- 컨트롤 스택(Control Stack): 중단된 프로그램의 CPU 상태가 저장된 스택.
- 스택 포인터(Stack Pointer): 스택의 최상위(top)를 가리킴.
- 일반 레지스터(General Register): CPU 내부 레지스터 상태 저장.
5. 메모리 계층 구조 (Memory Hierarchy)
- 하드 디스크(HDD): 모든 실행 파일 저장, 실행을 위해 메인 메모리로 로드.
- 이동 경로: Disk → Main Memory → Cache → Register.
- 메모리 제약:
- 용량 및 속도 문제.
- 휘발성: 전원 차단 시 데이터 소실.
- 효율적인 프로그램 실행:
- 페이지 단위: HDD → Main Memory.
- 블록 단위: Main Memory → Cache.
- 워드 단위: Cache → Register.
6. 캐시 메모리 (Cache Memory)
- 캐시 메모리: CPU 속도에 맞춰 빠르게 데이터 접근, 메인 메모리 속도 증가.
- 캐시 관리: 하드웨어에서 관리, OS는 관리하지 않음.
- 속도 향상:
- OS로 인한 지연 최소화.
- 동일 데이터에 대한 빠른 접근.
7. I/O 기술 (I/O Techniques)
- 프로그래밍된 I/O (Programmed I/O): OS가 I/O 작업을 수행하는 동안 CPU 대기.
- 인터럽트 기반 I/O (Interrupt-Driven I/O): I/O 작업 완료 시 인터럽트 발생, OS가 처리.
- 직접 메모리 접근(DMA): 대량 데이터 이동 시 효율적, CPU를 거치지 않고 메인 메모리와 I/O 모듈 간 직접 데이터 전송.
8. 대칭형 다중 처리(Symmetric Multiprocessing, SMP)
- 멀티 프로세서 시스템: 여러 CPU가 하나의 시스템 메모리와 I/O 시스템을 공유.
- SMP 아키텍처: 효율적 부하 분배 및 작업 스케줄링.
- 메모리 병목 현상: 동시에 접근 시 대기 발생.
9. 멀티코어 컴퓨터 (Multicore Computer)
- 멀티코어 시스템: 하나의 칩에 여러 CPU 코어 존재.
- 캐시 단계: 두 단계 캐시 (개별)와 세 번째 단계 캐시 (공유).
결론
인터럽트와 메모리 관리, 그리고 I/O 기술에 대해 알아보았습니다. 시스템 호출, 인터럽트 처리, 메모리 계층 구조, 캐시 메모리의 역할을 이해함으로써, 현대 컴퓨터 시스템의 효율적인 운영 방식을 이해할 수 있습니다. 다양한 I/O 기술과 다중 프로세서 시스템을 통해 성능 향상을 도모하는 방법도 살펴보았습니다. 이로써 운영체제와 하드웨어의 상호작용을 더 잘 이해할 수 있게 되었습니다.
'운영체제' 카테고리의 다른 글
운영체제 Chapter3 3-2 Process (0) | 2024.06.25 |
---|---|
운영체제 Chapter2 2-2 (0) | 2024.06.23 |
운영체제 Chapter2 2-1 (0) | 2024.06.23 |
운영체제 chapter1 - 2주차 (0) | 2024.06.22 |
운영체제 Chapter 1 - 1주차 (0) | 2024.06.22 |