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() 등의 함수를 사용하여 운영체제의 네트워크 서비스를 호출할 수 있습니다.