본문 바로가기

코딩코딩/운영체제5

[번역] 왜 caller-saved와 callee-saved가 필요할까? 보호되어 있는 글 입니다. 2022. 6. 5.
Paging, MLP4, Linux 페이징 선형적인 가상 주소 -> 실제 물리주소로 번역해주는 메커니즘 페이징 모드에는 3가지가 있다. (1) 32비트 페이징, (2) PAE 페이징, (3) IA-32e 페이징 우리가 살펴볼 건 IA-32e 페이징 (활성화를 위해 CR0.pg, CR4.PAE, IA32_EFER.LME 비트 설정 필요) Paging structures 페이징은 선형 주소 공간을 일정한 사이즈(4096, 4kb in x86_64)로 나누는 건데, 물리 주소 공간이나 외부 저장소에 매핑될 수 있다. x86-64 linux의 모든 structures는 4096의 사이즈와 512개의 entry로 이루어져있다. 리눅스는 계층을 갖는 4 level의 페이지를 사용한다. cr3에 최상단 레벨의 주소가 적혀있다. page table을 만들고 최.. 2022. 6. 1.
kernel_of_linux Terminology Kernel: Unix 메모리에 상주(memory resident)하는 C 프로그램 Utility: command라고도 불리며 디스크에 저장되어 있고 필요할 대 마다 불러옴(loaded on demand) Shell: Unix interface to user, read keyboard input & execute command file: sequence of bytes, I/O나 통신을 위한 소켓들도 모두 파일이다. How Kernel-Shell-Untilities are related 커널 - 쉘 - 사용자 프로그램의 계층구조 시스템콜 유저가 write같은 시스템콜을 요청 int $0x80이 HW 트랩을 발생시킴 HW가 CPU의 모드를 user->kernel로 변경 HW가 trap.. 2022. 5. 30.
PCB(Process Control Block) PCB에 담기는 정보들 Process state -> 프로세스의 상태(new, ready, running, waiting, halted 등) Program counter -> 다음에 이 프로세스를 위해 CPU가 실행시킬 instruction의 주소 CPU registers -> 이 프로세스가 인터럽트나 context_switch 등에 의해 중단되었다가 다시 실행될 때 올바르게 실행되기 위해 필요한 레지스터의 정보들 CPU-scheduling information -> 스케줄링을 위해 필요한 정보들(프로세스 우선순위 등) Memory-management information -> 기본 및 제한 레지스터의 값과 페이지 테이블 또는 세그먼트 테이블과 같은 항목 Accounting information -> 사.. 2022. 5. 30.