문맥교환 2

문맥교환

문맥교환이란운영체제 커널은 문맥 전환을 통해 멀티테스킹을 구현한다.커널은 각 프로세스마다 컨텍스트를 유지한다.컨텍스트는 커널이 선점된 프로세스를 다시 시작하기 위해 필요로 하는 상태이다. - 범용 레지스터, 프로그램 카운터, 사용자 스택, 커널 스택, 상태 레지스터, 페이지 테이블, 프로세스 테이블, 파일 테이블 같은 객체들 값들로 구성커널이 실행할 프로세스 선택 - 스케줄 했다.커널이 스케줄 한 후 현재 프로세스를 선점하는 것 - 문맥 교환 **스케줄러는 준비큐에 있는 구조체에서 프로세스 ID, 프로세스 우선순위, 프로세스 상태, PCB 포인터 정보를 가져온다.PintOS에서 PCB는 thread 구조체문맥교환이 발생하는 경우1. 하드웨어 인터럽트가 발생하는 경우 타이머 인터럽트가..

OSTEP 6장

CPU 가상화 어떻게 구현 ??-> CPU 시간을 나눠씀으로써 가상화를 구현 CPU 가상화를 구현하기 위해 두 가지를 해결해야 함 1. 성능 저하 // 과도한 오버헤드로 인한 성능 저하2. 제어 문제 // 응용 프로그램이 컴퓨터를 마음대로 제어해서는 안 된다.기본원리 : 제한적 직접 실행프로그램을 CPU 상에서 직접 실행하는 것을 의미 1. 프로세스 목록에 항목을 추가2. 프로그램 메모리 할당3. 메모리에 프로그램 탑재4. argc/argv를 위한 스택 셋업5. 레지스터 내용 삭제6. call main() 실행 main() 실행 main에서 return 명령어 실행7. 프로세스 메모리 반환8. 프로세스 목록에서 항목 제거 ** 몇 가지 문제점..

운영체제(OSTEP) 2024.10.10