본문 바로가기

전체 글140

5.1. CPU 스케줄링 CPU_Scheduling 1 이화여자대학교 반효경 교수님의 운영체제 강의를 요약한 내용입니다. 틀린 부분이 있다면 지적해주시면 감사하겠습니다. 강의 링크 1. CPU 스케줄링이란? CPU 스케줄링은 ready queue에 대기하는 프로세스 중 누구에게 CPU를 줄 것인가를 결정하는 작업이라고 한다. 컴퓨터 시스템 안에 있는 job들이 I/O bound job과 CPU bound job이 섞여 있어서 스케줄링이 필요하다. 크게 두 가지 이슈로 보자면, 먼저, 당장 어떤 프로세스에게 CPU를 줄 것인지를 결정해야 한다. 그리고 특정 프로그램에 CPU를 준 다음에는 CPU를 특정 시점에 가져갈 것인지, 해당 작업을 끝낼때까지 기다릴 것인지도 결정을 해야한다. 1.1. CPU burst, I/O burst C.. 2022. 7. 27.
4.2. 프로세스 관리 Process Management 2 이화여자대학교 반효경 교수님의 운영체제 강의를 요약한 내용입니다. 틀린 부분이 있다면 지적해주시면 감사하겠습니다. 강의 링크 1. 프로세스 관련한 시스템 콜 유닉스의 경우 fork() -> exec() 를 통해 자식 프로세스를 생성한다. 사용자 프로세스가 직접 못하고, 운영체제를 통해서만(시스템콜) 복제할 수 있다. 1.1. fork() 새거 만듦 fork()를 하면 해당 코드의 처음부터 실행되는 것이 아닌, fork()한 바로 다음 시점부터 실행된다. 부모의 fork 시점의 context를 복제했기 때문이다. 복제된 프로세스와 원본을 착각하지 않기 위해 장치가 마련되어 있다. 위 이미지를 보면, fork()함수의 return value(pid)로 부모 프로세스와 자.. 2022. 7. 26.
4.1. 프로세스 관리 Process Management 1 이화여자대학교 반효경 교수님의 운영체제 강의를 요약한 내용입니다. 틀린 부분이 있다면 지적해주시면 감사하겠습니다. 강의 링크 1. 프로세스 생성, 종료 1.1. 생성 부모 프로세스가 자식 프로세스를 생성하며, 프로세스의 트리 구조를 형성한다. 맨 위에 태초의 노드가 있다고 하면, 삼각형 구도로 자식노드가 연결되는 구조를 상상하면 되겠다. 프로세스는 자원(CPU, 메모리 등)을 필요로 하며, 보통 운영체제로부터 받는다. 자원 공유 방식 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 원칙적으로는 자식 프로세스가 생겨나면, 자원을 두고 경쟁하는 사이가 되며, 자원을 공유하지 않는다. 하지만 공유하는 모델도 존재한다. Copy-on-.. 2022. 7. 25.
3.2. 프로세스 Process 2,3 이화여자대학교 반효경 교수님의 운영체제 강의를 요약한 내용입니다. 틀린 부분이 있다면 지적해주시면 감사하겠습니다. 강의 링크 질문 동기식 구현방법 1,2 입출력 비동기식 입출력 다시 정리 1. Thread 1.1. Thread란? 경량화된 프로세스(lightweight process)라고도 한다. 프로세스 내부에 CPU 실행 단위가 여러 개인 경우 동일한 일을 하는 프로세스를 여러개 만든다면 별도의 프로세스를 만든다면 주소공간이 여러개 만들어지고 낭비가 생긴다. 주소공간을 하나 띄워놓고, 각 다른 코드 부분을 수행하도록 시킬 수 있다. PC 여러 개, 각 실행단위마다 어떤 레지스터, 어떤 코드를 별도로 유지한다. 스택도 별도로 두게 된다. 그림처럼 상태, 각종 자원 등은 공유한다. .. 2022. 7. 24.
3.1. 프로세스 Process 1 이화여자대학교 반효경 교수님의 운영체제 강의를 요약한 내용입니다. 틀린 부분이 있다면 지적해주시면 감사하겠습니다. 강의 링크 1. 프로세스의 개념 프로세스는 한 마디로 실행중인 프로그램을 말한다. 1.1. 프로세스의 문맥(Context) 프로세스의 문맥은 특정 시점을 놓고 봤을 때, 현재 프로세스의 상태를 나타내는데 필요한 모든 요소들을 말한다. PC가 어디를 가르키는지, 프로세스 메모리에 무엇을 담고 있는지(code 실행하다가 stack에 뭐를 얼마나 쌓았나?), data에 실행하면서 바꾸곤 하던 변수값이 지금은 얼마인지, 레지스터에 어떤 값 넣고 어떤 인스트럭션까지 실행 했는지 등 다양한 정보를 저장한다. 정리하자면, CPU 수행 상태를 나타내는 하드웨어 문맥 Program Coun.. 2022. 7. 23.
2.2. 컴퓨터 시스템의 구조와 프로그램의 실행 SystemStructure & Program Execution 2 이화여자대학교 반효경 교수님의 운영체제 강의를 요약한 내용입니다. 강의 링크 1. I/O 1.1. 동기식 입출력, 비동기식 입출력 동기식 입출력(snychronous I/O), 비동기식 입출력(asynchronus I/O)는 어디에서 언급되는지에 따라 의미가 조금씩 다르다고 한다. 뒤에 배울 프로세스에 나올 synchronus와 지금의 synchronous도 조금 다르다고 하셨다. 우선 그냥 보통 생각하는 동기식, 비동기식을 생각하면 될 것 같다. 간단히 말해서 동기식은 I/O를 기다리고, 비동기식은 기다리지 않고 작업하는 것이다. 1.1.1. 동기식(snychronous) 입출력에서 동기식은 I/O 요청 후 입출력 작업이 완료된 후에야.. 2022. 7. 22.