Computer Science/Operating System(OS)19 CPU Scheduling-CPU스케줄링 CPU and I/O Bursts in Program Execution 어떤 프로그램이든지 위 와 같은 절차를 실행하며 프로그램 실행이 진행됨 CPU burst : CPU만 연속적으로 쓰면서 instruction을 실행하는 단계 I/O burst : I/O를 실행하고 있는 단계 모든 프로그램은 CPU burst와 I/O burst가 반복되는 절차를 갖는다. 단, 프로그램마다 burst의 빈도수는 다르다. 주로 사람이 interaction을 하는 프로그램이 CPU burst, I/O burst의 반복 빈도가 높다. 반면, 과학/계산용 프로그램은 CPU brust의 실행 시간이 길다. CPU-burst Time의 분포 여러 종류의 job(=process)이 섞여 있기 때문에 CPU 스케줄링이 필요하다. In.. 2022. 3. 10. Process Management-프로세스 관리 프로세스 생성(Process Creation) 부모 프로세스(Parent process)가 자식 프로세스(children process)생성 → 복제생성,여러개 가능 프로세스의 트리(계층 구조) 형성 프로세스는 자원을 필요로 함 운영체제로부터 받는다. 부모와 공유한다. 자원의 공유 → 원칙적으로는 자원을 공유하지는 않음. 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 *Copy-on-Write(COW) 기법: Write가 발생했을 때, Copy를 하는 기법. 자식은 부모를 복제하기 때문에 같은 내용의 자원을 사용하더라도 메모리가 낭비 됨. 하지만, 리눅스 등의 일부 운영체제에서는 무조건 카피하는 것이 아니라 자원을 공유하다가 자식과 부모 프로세스의 차이점이 발생하.. 2022. 3. 8. Process(2)-프로세스 Thread-쓰레드 “A thread (or lightweight process) is a basic unit of CPU utilization” 프로세스 하나에 CPU 수행 단위가 여러개 있는 것을 쓰레드 라고함. (PC가 여러개) CPU 수행단위가 여러개이기 때문에 각 쓰레드 별 함수를 리턴했던 정보를 저장할 stack 영역을 별도로 구분해서 사용 Thread의 구성 (Thread별 독립적으로 갖는 부분) Program Counter register set stack space Thread가 동료 thread와 공유하는 부분(=task) code section data section OS resources 전통적인 개념의 heavyweight process는 하나의 thread를 가지고 있는 task.. 2022. 3. 3. Process(1)-프로세스 프로세스의 개념 “Process is a program in execution” = 실행 중인 프로그램 프로세스의 문맥(context) 프로세의 현재 상태를 나타내는데 필요한 모든 요소 크게 3가지로 나누어 설명할 수 있음 CPU 수행 상태를 나타내는(CPU와 관련된) 하드웨어 문맥 Program Counter 각종 register 프로세스의 주소 공간 code, data, stack에 어떤 내용이 들어있는가 프로세스 관련 커널 자료 구조 PCB(Process Control BlocK) Kernel Stack 프로세스의 상태(Process State) 프로세스는 상태(state)가 변경되며 수행된다. Running : CPU를 잡고 instruction을 수행 중인 상태 Ready : CPU를 기다리는 .. 2022. 3. 3. 이전 1 2 3 4 5 다음