ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [PintOS]9주차 project2-키워드
    TIL 2024. 11. 11. 20:03
    • User mode vs Kernel mode
      • 프로그램이 부팅되면 하드웨어가 커널 모드에서 시작하고 운영 체제가 로드되면 사용자 모드에서 사용자 애플리케이션을 시작한다. 하드웨어에 대한 보호를 제공하기 위해 커널 모드에서만 실행되는 특권 명령어가 있다. 사용자가 사용자 모드에서 특권 명령어를 실행하려고 하면 명령어를 불법으로 처리하고 OS에 트랩한다.
        • 트랩이란 CPU가 프로그램에서 발생한 예외 상황이나 시스템 호출을 처리하기 위해 실행을 잠시 멈추고 커널 모드로 전환하는 소프트웨어 인터럽트이다. 트랩이 발생하면 현재 실행 중인 프로그램의 흐름이 하드웨어에 의해 중단되고, 제어가 운영 체제의 특정 핸들러 함수로 넘어간다.
        • 그 예로 System Call, Exception, 등이 있다.
      • User mode
        • 프로그램이 운영체제에서 부팅되면 사용자 모드에서 프로그램을 시작한다.
        • 사용자 모드 프로그램이 실행을 요청하면 Window에서 프로세스와 가상 주소 공간(해당 프로세스의 주소 공간)을 만든다.
        • 사용자 모드 프로그램은
      • Kernel mode
      • 질문
        1. 커널 모드만 있으면 되지 왜 사용자 모드가 필요할까?
      User mode
    • 의도: project1 과 project2 차이를 말하고 싶은 거 같다. 그 이유는 이번 프로젝트는 유저 모드에서 시스템 콜을 호출해서 커널 모드를 사용하기 때문. + 이 프로젝트의 유저 가상 메모리는 가상 주소 0부터 KERN_BASE까지 커널 가상 메모리는 가상 주소 공간의 나머지 부분을 차지
    • Register vs Memory
    • User Stack
    • 의도: PintOS에서 유저 스택의 크기는 고정되어 있지만, 프로젝트 3에서는 유저 스택의 크기는 가변적이다. 또한, 전통적으로 초기화 되지 않은 데이터 세그먼트의 사이즈는 시스템 콜에 의해 조정될 수 있지만, 구현할 필요는 없다. 는 관점에서 찾아보자.
    • System Call의도: 유저 프로세스가 일부 커널 기능에 접근하려고 할 때, 시스템 콜을 호출한다. 이런 관점에서 시스템 콜을 공부해보자. 추가로 사용자 프로그램이 커널로 전달하는 인자를 제대로 검증하고 처리(깃북 Accessing user Memory)
    • 운영체제 p.39
    • File Descripor
    • Cache
    • 의도:
    • Atomic Operation
    • rax register
    • 32 bit OS vs 64 bit OS
    • Interrupt
    • 의도: tss.h 와 tss.c 파일에서 유저 프로세스가 인터럽트 핸들러에 진입할 때 하드웨어는 tss(Task-State Segment) 에게 스택 포인터를 찾아달라고 요청한다는 의미. 라는 관점에서 찾아보자. (앞으로 tss 관련 파일을 수정할 일은 없기도 하다)
    • Segmentation Fault
    • 의도: 유저 프로그램이 커널 가상 메모리에 접근하려는 시도는 page_fault 를 야기하고 프로세스는 종료된다. 라는 관점에서 Segmentation Fault 도 생각해보자.
Designed by Tistory.