TABA/운영체제
[공룡책] Ch2. Operating system structures 정리
qwerty123
2024. 1. 12. 16:50
OS 가 하는 작업
OS가 제공하는 서비스들:
- User Interface
- Program execution
- I/O operation
- File-system manipulation
- Communications
- Error detection
- Resource allocation
- Loggig
- Protection and security
인터럽트 VS 트랩
: 모두 컴퓨터 시스템에서 중단되는 것을 의미한다.
인터럽트
- 주로 외부이벤트에 대응
- 키보드 입력, 마우스 클릭, 네트워크 신호와 같은 하드웨어 장치로부터 발생
- 사용자의 키보드 입력에 대한 즉각적인 반응이 필요할 때 사용!!
- 응답방식 : 비동기적 메커니즘, 인터럽트 서비스 루틴(ISR)을 통해 처리됨
트랩
- 주로 소프트웨어에 의해 내부적으로 발생
- 의도적인 동기식 예외
- 예외 상황, 소프트웨어 오류, 운영체제에 대한 서비스 요청(시스템 콜)과 같은 상황에서 발생
- 이를 통해 프로그램은 운영체제의 보호된 기능에 접근할 수 있음!!
- 트랩은 프로그램의 정상적인 실행 흐름 중에 발생함
비동기 인터럽트 VS 동기 인터럽트
1) 비동기식 인터럽트(=하드웨어 인터럽트)
우리가 흔히 interrupt라고 부르는 것.
정해진 기준 없이 예측 불가하게 이벤트 발생하며, 인터럽트 서비스 루틴(ISR)을 통해 처리된다.
예시)
- 입출력 장치의 데이터 전송 완료
- 타이머 인터럽트 (주기적으로 발생하여 일정 시간마다 시스템의 상태를 감시하거나 스케줄링 등을 수행)
- 메모리 에러 (예: 페이지 폴트)
- 전원 문제 (예: 전원 공급장치 문제)
2) 동기식 인터럽트(=소프트웨어 인터럽트)
우리가 흔히 exception 이라고 부르는 것.
명령어 실행 후 그 결과로 발생한다.
예시)
- 파일 입출력
- 사용자 프로그램에서 파일 입출력을 수행할 때, 운영체제의 파일 시스템 서비스를 호출해야 합니다. 이 때, read(), write() 함수 등의 시스템 호출을 사용하여 운영체제의 파일 시스템 서비스를 호출할 수 있습니다.
- 메모리 할당
- 사용자 프로그램에서 동적 메모리 할당을 수행할 때, 운영체제의 메모리 관리 서비스를 호출해야 합니다. 이 때, malloc(), free() 함수 등의 시스템 호출을 사용하여 운영체제의 메모리 관리 서비스를 호출할 수 있습니다.
- 네트워크 통신
- 사용자 프로그램에서 네트워크 통신을 수행할 때, 운영체제의 네트워크 서비스를 호출해야 합니다. 이 때, socket(), connect(), send(), recv() 등의 함수를 사용하여 운영체제의 네트워크 서비스를 호출할 수 있습니다.