본문 바로가기

STUDY/운영체제

(13)
process scheduling 앞에서 배운 process에서 cpu는 처리량을 늘리기 위해서 context switch를 한다고 했다. 즉 cpu는 running과 waiting의 2가지 상태가 번갈아가며 수행되는 것이다. 처리하려는 작업에 따라 cpu burst가 길 수도 있고, I/O burst가 길 수도 있다. cpu burst가 긴 경우가 cpu bound, I/O burst가 긴 경우 I/O bound이다. I/O burst의 예로는 동영상 재생, 문서 편집 등이 있다. 즉 사용자와 interactive한 것이다. cpu bound의 예로는 복잡한 수식 계산 등이 있다. 천문학 수식 계산 등등... 그럼 이 작업들을 어떻게 스케쥴링 해야할까? cpu scheduler ( = short-term scheduler) : read..
multi-thread programming 앞에서 배운 multi-process programming은 마냥 좋기만 할까? 딱히 그렇지도 않다. process process는 기본적으로 Heavy-weight이다. 즉 프로세스 1개를 만드는 것은 오버헤드가 크다. 왜냐하면 process는 가진 정보가 많기 때문이다. 프로세스들은 독립적인 memory space가 필요하다. 따라서 address space가 필요하다. 또한 os resource, accounting info, hardware execution state(pc, sp, register) 등등 이러한 자료구조들을 새로 다 만들어야 한다. 당연히 오버헤드가 클 수 밖에 없다. 따라서 fork() 등으로 process를 새로 생성하는 것은 costly, 즉 비용이 많이 든다. 또한 통신을..
process concept process가 무엇인가? process는 프로그램 실행 흐름의 가장 기본적인 단위이다. 다들 이렇게 설명하는데 사실 뭔 소린지 이해가 안갈 수 있다. 그럴때는 프로그램 실행을 위한 작업의 대상, 즉 os가 scheduling하는 대상이라고 생각하면 쉽다. process - 프로그램의 실행 단위 - 프로그램 안에서 흐름을 제어하는 캡슐화 단위 - dynamic and active entity - 실행과 스케쥴링 단위 process address space process가 메모리에 저장되는 공간은 어디일까? memory의 구조는 낮은 주소부터 code, data, heap, dynamic으로 구성되어 있다. code: text segmentn로 기계어들이 저장되어 있다. data: 변하지 않는 static..
os system structure operating system structure는 다음과 같다. 사용자가 보는 user mode와 os의 영역인 kernel mode로 구분하고 이 둘을 연결하는 것이 system call interface이다. function call은 사용자가 만든 함수를 호출하는 것이지만 system call은 os가 만든 함수 즉 kernel mode로 진입하게 한다. 윈도우에서는 api라고 부르지만 리눅스는 sys call이다. 그럼 언제 운영체제가 system의 controll을 가져가는가? 1. bootstraping: 전원이 켜질때 전원이 켜질 때는 명령어들을 메모리에 올리고 실행해야 한다. 이때 최초의 명령어 주소가 0xffffff0이다. 전원이 꺼져도 남아있어야 하므로 rom bios에 저장된다. 정상..
about operating system 운영체제 operating system : 컴퓨터 하드웨어와 응용 프로그램 사이에서 하드웨어를 효율적으로 관리하여 사용자의 편리함을 높여줌 resource allocater (자원 할당자): 특정 프로그램과 사용자의 작업에 필요한 하드웨어 자원을 할당해줌 control program (통제 프로그램): 사용자 프로그램이나 입출력 장치의 실행을 관리, 즉 통제하여 오류나 부적절한 실행을 방지한다. computer system의 구성 요소 하드웨어: I/O device(입출력 장치), memory(기억 장치), CPU(중앙 처리 장치) 운영체제 응용 프로그램 사용자 user system program + kernel = 운영체제 -> 이때의 system program은 컴퓨터를 사용하기 위해 필수적인 프로그..