Krafton Jungle

[ KJ ] Week05

반응형

5주차에는 Memory를 조금 더 이해하고, malloc의 개념 확인 및 구현을 진행했습니다~

그리고 제어흐름에 대해 정리했어요!

 

  • 예외적인 제어 흐름(ECF) : 현재 발생하던 프로그램에서 제어 흐름에 갑작스러운 변화가 일어났을 경우
    예외를 통해서 프로세스가 사용자 모드에서 커널로 유일하게 진입하는 것

-  응용 프로그램 실행 중에 예외적인 상태 변화가 일어나는 것

Ex) 가상 메모리 페이지 오류, 산술 오버플로우 발생, 인스트럭션이 Divide by zero 시도, 응용 프로그램과 무관한 시스템 타이머 정지, I/O 요청 완료

- 운영체제가 임출력, 프로세스, 가상메모리를 구현하기 위해 사용하는 기본 매커니즘

- 응용 프로그램은 트랩(trap) 또는 시스템콜(system call)을 보내 운영체제로부터 서비스를 요청
- 응용 프로그램과 운영체제의 상호작용은 모두 ECF 중심

  • 예외 테이블 : 프로세서가 이벤트 감지 시 특정 종류의 이벤트를 처리하기 위해 운영체제의 서브루틴(예외 처리 핸들러)으로 간접 프로시저 콜 요청
  • 인터럽트 : 프로세서 외부에 있는 입출력 디바이스로부터의 비동기적인 시그널의 결과
  • 트랩 : 의도적인 예외상황으로 어떤 인스트럭션 실행 시 발생
  • 시스템콜 : 사용자 프로그램과 커널 사이의 프로시저와 유사한 인터페이스
  • 중단 : 패리티 에러와 하드웨어 같은 복구할 수 없는 치명적인 에러에서 발생

   - 중단 핸들러는 절대로 응용 프로그램에 제어권을 넘기지 않습니다.

  • 오류 : 핸들러가 정정할 수 있을 가능성이 있는 에러
  • 커널 : 프로세스가 실행되는 동안 어떤 시점에 현재 프로세스를 선점(일시정지)하고 이전에 선점된 프로세스를 다시 시작할지 결정해줌
  • 문맥 전환 : 시스템콜이 어떤 이벤트의 발생을 기다리기 때문에 블록 된다면 커널은 현재 프로세스를 sleep 시키고 다른 프로세스로 전환 시킴
반응형

'Krafton Jungle' 카테고리의 다른 글

[ KJ ] Week07  (0) 2024.03.11
[ KJ ] Week06  (0) 2024.02.29
[ KJ ] Week04  (0) 2024.02.07
[ KJ ] Week03  (1) 2024.02.01
[ KJ ] Week02  (1) 2024.01.26