OS, Kernel 5

Kern Koh Kernel of Linux Interrupt 정리

Hardware Issues 기본적으로 CPU는 instruction fetch, decode, execute, write back 네가지 상태? 로 처리함 PC 증가시키면서 처리 보통 명령 4바이트라서 PC+4로 표현했음 interrupt request bit이 set 되면 register save 하고 PC에 interrupt handler를 집어넣음 즉 지금하던거 중단하고 interrupt 먼저 처리해주는것 IO devices가 많을때 Interrupt Controller를 사용하면 교통정리를 해줄 수 있음 시도때도 없이 막 interrupt request를 보내면 CPU가 효율적인 동작을 해줄 수 없음 프로그래밍 가능한 인터럽트 컨트롤러 대충 IMR에서 걸러진 IRQ들이 우선순위대로 잘 맞춰져서 ..

OS, Kernel 2022.08.06

Kern Koh Kernel of Linux Scheduling 정리

Linux에서는 기본적으로 우선순위가 제일 높은애가 돌아감 근데 timeslice가 남아있는지도 고려함 timeslice 남았을때 preempted task가됨 ready 상태일때 나중에 remaining timeslice를 쓸 수 있음 20ms를 쓰다가 CPU가 다른 더 중요한 task한테 뺏기면 나중에 그 중요한 task가 끝나고 다시 80ms의 remaining timeslice를 쓸 수 있음 그래서 linux에서 CPU를 차지하려면 우선순위도 높아야되고 remaining timeslice가 0이 아니여야됨 timeslice다 쓰면 다른 tasks가 timeslice 다 쓸때까지 기다리고 우선순위에 기반해서 스케쥴링됨 Scheduling Algorithm Ready Queue라는 하나의 리스트에 P..

OS, Kernel 2022.07.20

Kern Koh Kernel of Linux Process Management 정리

커널은 하드웨어을 관리해야 됨 또한 프로그램들이 잘 돌아갈 수 있도록 잘 받쳐줘야 함 하드웨어 관리를 위해 metadata를 가지는 내부적인 자료구조?를 가지고 있음 - ex) disk 같은 경우엔 어떤 섹터가 놀고 있는지에 대한 정보 프로세스 관리를 위한 데이터 구조인 PCB(Process Control Block)도 있음 PCB(Process Control Block) PCB가 가져야 하는 metadata의 집합 프로그램을 돌리다 예를 들어 disk에 대한 I/O 작업을 해달라 하면 disk wait queue에 들어가고 I/O가 끝났을 때 상태를 표시하기 위한 Status가 있음 I/O가 끝나서 CPU의 처리가 필요하면 ready queue라는 리스트에 들어감 process가 I/O 작업이 필요하면..

OS, Kernel 2022.07.19

Kern Koh Kernel of Linux Introduction 정리

What is an Operating System? 유저랑 컴퓨터 하드웨어 사이에서 중개자? 역할을 해주는 프로그램이다. Operating System의 목표: - user program 실행 - 문제를 쉽게 해결하기 위해서 - 컴퓨터 시스템을 잘 사용하기 위해서 - 하드웨어를 효율적으로 사용하기 위해서 Performance - Throughput : 처리량 --- jobs / sec - Utilization : CPU를 바쁘게 유지하는 것 --- % of time busy - Response time : 첫번째 Response 나오는데 걸린 시간 --- sec / job Kernel - Memory 상주 - 대부분은 C로 작성됨 - 나머지는 HW dependent, speed 등의 이유로 어셈블리 사용..

OS, Kernel 2022.07.18