흔히 말하는 공룡책과 강의를 바탕으로 작성한 시리즈이다. 운영체제란? 컴퓨터(HW)를 샀을 때 사용자는 응용프로그램을 설치하게 된다. 응용프로그램이 HW가 어떤 종류인지 신경을 쓰지 않아도 가운데에서 해주는 즉 HW와 User 간의 interaction을 제공한다. 목적 사용자들이 동작하고자 하는 프로그램들이 쉽게 동작할 수 있고 쉽게 접근할 수 ...
OS services UI Program execution에 대한 환경을 제공해줘야 한다. 프로그램을 메모리에 올리고 동작할 수 있게끔 자원을 할당해줘야 한다. I/O 장치들이 동작하도록 제공해야 한다. 파일 시스템 관리 Networking 기능이 기본적으로 탑재가 되어야 하고, process간 소통이 되도록 제공해줘야 한다. 에러 감지를 해야한다. 자원...
Process Concept 동적인 상태일 때, 동작하고 있는 상태인 프로그램을 말한다. task라고도 한다. 프로그램은 어떤 순서에 맞게 동작해야 한다. 5가지의 정보가 기본적으로 저장된다. text section program counter: 다음 수행해야 하는 instruction 정보를 담고 있다. Stack: 지역 변수, 일...
Basics process 안에 최소 1개의 thread가 존재한다. process 1번에 thread 1, 2가 있다. 이때 수행 단위는 thread 각 thread별로 ID, PC, 레지스터, 스택(지역 변수가 들어가는) code section, data section(전역 변수)와 OS가 가진 resource들을 공유한다. 여러 가지 일들을 동시 다...
CPU Scheduling CPU 자원을 최대한 활용할 수 있는가에 대한 process이다. 보통 CPU를 짧은 시간 내에 최대한 활용하기에 이를 적절히 분배하기 위해 필요하다. ready queue에 들어간 순서대로 실행을 하는데 이를 우선순위에 따라 다시 정렬하는 방식이다. Short-Term scheduler 4가지의 경우 프로세스를 새로 선택해...
concurrent하게 동작: A라는 process가 동작할 때 인터럽트가 어느 때든 올 수 있고 부분적으로만 수행하고 잠시 멈추게 되는 경우가 있을 수 있다. inconsistency가 일어나기에 consistency가 보장될 필요성이 있다. - consumer-pr
로켓 system에서 deadlock을 풀기위한 방법 memory leak만큼 deadlock은 치명적 deadlock은 경쟁이 붙어서 멈춰버린 상황이라 누구의 탓을 할 수 없다. System에 있는 R(resource) Ri의 resource가 Wi개만큼 있다.
메모리는 각각 주소가 할당된 일련의 바이트들로 구성된다. CPU는 PC가 지시하는 대로 메모리로 다음 수행할 명령어를 가져온다. CPU자원, 메모리 자원은 중요하기에 어떻게 할당해주어야 할지(스케줄링) 알아야 한다. 어떤식으로 메모리에 적재되는지(프로세스에게 메모리를 얼마나 할당해줘야 하는지) Background CPU가 직접적으로 접근할 수 있는 메...
마치 메모리가 더 있는 것처럼 indirection ! 물리적으로는 RAM이 8GB이지만 전체 program을 동시에 돌리는건 극히 드물기에 가장 중요하다고 생각되는 프로그램을 실행하는데 16GB로 수행하는척 해주는 것. 굳이 메모리에 적재되어 있지 않아도 되는 것들을 굳이 적재하지 않음( Dynamic Loading ). 3번 메모리에 접근하고 싶은데 ...