본문 바로가기

카테고리 338

프로세스 생성/종료 Instruction 실행 Instruction을 실행하는 것에는 크게 2가지 종류가 있다. 프로세스 : OS scheduler가 scheduling하는 대상 프로세스가 아니면서 instruction을 실행하는 것 : interrupt handler, scheduler Process Creation UNIX를 기준으로 새로운 프로세스를 생성하는 방법에는 2가지가 있다. scatch로 부터 만들어내는 방법 최초의 process(process 0) 생성 예 : process 0를 생성 기존에 존재하는 프로세스를 복제하는 방법 process 0를 복제 process 0 이후의 다른 프로세스들은 process 0를 복제해서 만들어진다. 예 : fork() system call Scratch로부터 프로세스를 만드.. 2021. 6. 17.
Process Scheduling (Context Switching) Process Scheduling CPU는 짧은 시간 단위로 scheduling을 해서 process들을 번갈아가면서 수행한다. 이를 multitasking이라 한다. Multitasking을 위해서는 scheduling이 반드시 필요하다. OS가 memory에 load 된 여러 process들 중 다음에 실행할 process를 선택하는 것을 scheudling이라 한다. pseudo code로 나타내면 다음과 같다. while(1) { 프로세스 실행 : run the process for a while 프로세스가 CPU를 yield하거나 interrupt를 발생할 때까지 기다림 : wait until an interrupt happens or the process yields CPU 프로세스를 멈추고 .. 2021. 6. 16.
Process, PCB(Process Control Block) Process Process는 실행 중인 프로그램이다. Process는 다음과 같이 구성되어 있다. 이들을 process의 실행상태를 표현하기 위해서 사용된다. address space memory의 상태를 의미한다. 메모리 상에서 process가 차지하고 있는 영역 = code + data + stack code : instruction data : global variable stack : 함수의 인자, return address, local variable(temporary variable) current activity CPU의 상태를 의미한다. program counter(PC) processor의 register(범용 레지스터) Program vs. Process program 개발자가 작성한.. 2021. 6. 16.
User Mode, Kernel Mode Privilege Mode Processor는 다른 privilege mode를 제공한다. Intel architecture : 4개의 privilege mode 제공 ARM architecture : 8개의 privilege mode 제공 Execution Mode Privilege mode는 크게 2개로 구분할 수 있다. user mode 응용프로그램의 code가 동작한다. non-privileged instruction이나 register만 사용한다. system call이나 interrupt에 의해 kernel mode로 전환된다. kernel mode kernel code가 동작한다. privileged instruction이나 register만 사용한다. User Mode → Kernel Mo.. 2021. 6. 16.
5. Cache - Virtual Memory Interaction TLB and Cache Interaction CPU가 주는 address는 virtual address이다. 그런데 main memory와 cache memory는 physical address를 사용한다. 따라서 TLB를 이용해서 address translation을 해야 한다. Address Translation 과정 CPU는 virtual address(VPN + page offset)을 준다. 들어온 VPN을 TLB에서 parallel matching을 한다. TLB hit : 해당 entry에서 PPN을 얻는다. TLB miss : main memory의 page table에서 해당 virtual page의 PTE를 찾는다. → page hit/miss physical address를 완성한다.. 2021. 6. 13.