운영체제 하는 일
- CPU 스케줄링
- 파일관리(디스크에 파일 어떻게 보관하지)
- 메모리 관리(한정된 메모리 어떻게 쪼개지)
- 입출력 관리
- 프로세스 관리(자원할당 및 반환), 보호시스템, 네트워킹
Mode bit (하드웨어)- 보호장치. 사용자 프로그램의 잘못된 수행이 운영체제에 피해가 가면 안됨.
1: 사용자 모드
0: 모니터모드(커널모드, 시스템 모드, OS 코드 수행)
특권명령 : 보안을 해칠 수 있는 중요한 명령어는 모니터 모드에서만 수행 가능
타이머
정해진 시간이 흐른 뒤 운영체제에게 제어권이 넘어가도록 인터럽트 발생.
타이머 값이 0이 되면 타이머 인터럽트 발생.
독점으로부터 보호. For time sharing. 현재 시간 계산 위해서도 사용
Device controller
일종의 작은 cpu. Register을 가짐.
I/O가 끝났을 때 interrupt로 cpu에 그 사실을 알림.
Device driver 장치 구동기. 각 장치별 처리 루틴.
모든 입출력 명령은 특권 명령.
사용자 프로그램은 어떻게 I/O를 하는가?
시스템콜 : 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것
- 사용자 프로그램은 운영체제에게 I/O 요청
- Trap 사용하여 인터럽트 벡터의 특정 위치로 이동
- 제어권이 인터럽트 벡터(해당 인터럽트의 처리 루틴(인터럽트를 처리하는 커널 함수) 주소)가 가리키는 인터럽트 서비스 루틴으로 이동
- 올바른 요청인지 확인 후 수행
- I/O 완료 시 제어권을 시스템콜 다음 명령으로 옮김
Trap 걸리면 mode bit이 0으로 바뀐다.
인터럽트: 보통 하드웨어 인터럽트. 소프트웨어 인터럽트는 trap이라 함. Ex) Exception, System call