본문 바로가기

전체 글22

Multiprocessor scheduling 단일프로세서 스케줄링은 'time domain'에서 언제 수행할 지를 정한다. multiprocessor 스케줄링은 'space domain'에서 어디에서 수행시킬 것인지를 결정한다. 대부분의 멀티프로세서 스케줄링의 목표는 단일프로세서 스케줄링과 비슷하다. 하지만 멀티프로세서 스케줄링은 아래의 이슈가 있다. ready queue를 어떻게 유지할 지 affinity를 어떻게 정의할 지 다중처리기에서 프로그램을 어떻게 할당할 지 processor heterogeneity를 어떻게 관리할 지 프로세서들간의 workload balance를 어떻게 관리할 지 멀티프로세서에서의 이슈를 크게 두 가지로 나누어 HW issue/SW issue로 구분해보자. HW issue : Cache Affinity multipro.. 2021. 5. 16.
Process Scheduling 2 Burst (time) - CPU Burst : CPU가 실행하면서 걸리는 시간 - I/O Burst : CPU가 I/O를 기다리는 시간 프로세스는 CPU Burst 와 I/O Burst의 반복으로 이루어 질 수 있다! Bound - I/O bound : I/O를 blocking 하기 전 상대적으로 짧은 CPU Burst - CPU bound : I/O를 blocking 하기 전 상대적으로 긴 CPU Burst 스케줄링 CPU utilization : CPU 이용률 ( I/O utilization도 있다) Throughput : 단위시간당 몇 개의 job을 했는지.(시스템중심, 주로 최대화 하는 전략) Turnaround time : 프로세스가 수행되는데 걸리는 시간 Response time : 어떤 요.. 2021. 5. 10.
Process Scheduling 프로세스 스케줄링이란? 스케줄링 알고리즘을 통해 다음에 실행할 프로세스를 결정하는 것 - Long-term scheduling(job scheduling) : 프로세스가 처음 생성되어 system에 추가될 지 말 지를 결정 - medium-term scheduling(swapper) : 어떤 프로세스를 다시 memory로 올려놓을 것인지를 결정 - short-term scheduling(CPU scheduler) : processor scheduler(일반적인 프로세스 스케줄링) + I/O scheduling : I/O request할 때, pending하고 있는 프로세스 중 어떤 request를 선택할 지 결정 schedule함수 안에는 new process를 선택하는 알고리즘이 있다. [selecti.. 2021. 4. 25.
Process Description and Control 3 Process Creation 프로세스는 크게 두 가지 방식으로 생성됨 - 직접 생성 : directed process creation - 복제 : Cloning Directed Process Creation -> 운영체제가 Disk에 있는 프로그램을 memory에 올려서 process로 만들고 process image(PCB)를 만든다. 제일먼저 1. new process를 위한 메모리공간 확보 2. 새로운 메모리 공간에 Load (code,data를 메모리로 load, call stack 생성) 3. PCB 초기화 (pid 할당받고,,, 등등) 4. new process를 ready state 로 전환 (ready-list에 넣는다.) 일반 OS에서 첫 번째 Process는 이런식으로 만든다. ini.. 2021. 4. 16.
Process Description andControl 2 Mode switch vs Process switch 1. Mode switch user mode와 kernel mode 사이의 전환 모드가 전환되더라도 running state인 process상태는 변화되지 않는다. ->같은 프로세스 사이에서 mode switch일 경우 process상태는 바뀌지 않고 모드만 바뀐다는 의미 위와같은 경우, saving/restoring contexts는 오버헤드를 포함한다. 하드웨어적으로 동작 2. Process switch 한 프로세스에서 다른 프로세스로의 전환 현재 process의 context를 저장한다. PCB를 update하여 ready, block 등 상태를 변화시키고 상태에 따라 적절한 queue로 이동한다. 실행을 위한 다른 process를 선택한다. -.. 2021. 4. 13.
Process Description and control 1 Program vs process Program : Disk에 저장되어 있는 Passive entity(이미 데이터 형태로 저장되어 있음) Process : 실행중인&실행가능한 프로그램 active entity -> 프로그램은 파일이 메모리에 load 될 때 프로세스가 된다. -> 하나의 프로그램은 여러개의 프로세스로 이루어질 수 있다. (크롬창 여러개 띠우는 것 처럼) 프로세스는 1. 프로그램 코드 2.코드와 관련된 데이터 가 꼭 필요하다. Process 실행중인 & 실행가능한 프로그램 프로세서에 할당될 수 있는 entity 일련의 명령어를 실행하거나, 현재 상태 및 관련 시스템 자원 set을 실행 Job, task, process 모두 OS에서는 동일하게 쓰임 Process = task + threa.. 2021. 4. 11.
User program and System Call Kernel - Os 메모리에 항상 상주하는 핵심적인 영역 - 주로 c로 쓰여짐(절차지향적 언어에서 c가 효율이 좋음) - Hardware적으로 운영되는 일부 부분은 어셈블리어로 제공되고, speed가 중요해짐 - 다양한 함수들의 집합(이 함수들이 무엇을 하냐? -> Process management, synchronization, cpu scheduling, memory management, device management, interrupt handling) - System call(위 함수들 중 일부분을 user program이 사용할 수 있게 해줌)을 이용해 제공 Utility(Command) -kernel을 제외한 모든 것(user program도 포함하는 개념) - Disk에 상주 - 요청이 .. 2021. 4. 11.
Operating System OS의 주목적 - Convenience : user에게 편리성 제공 - Efficiency : hardware를 관리, 실행하는 효율성 - Ability to evolve : 발전가능성 OS is a - Mediator : software와 hardware를 중재하며, 프로그래머에게 편리한 interface를 제공한다. - Resource manager : os는 컴퓨터자원을 관리할 필요가 있다. Serial Processing -> Simple batch -> Multiprogrammed batch system -> Time sharing 과거에는 시스템 이용률을 최대화 하기 위한 목적으로 OS 개발 현대에는 인간의 생산성을 높이는 것이 주목적. 평균 response time 중요 1. Serial P.. 2021. 4. 10.
Computer System Overview (2) Interrupt Mechanism CPU는 계속해서 명령어들을 처리한다. 처리 중 I/O device에서 data를 읽어들여야 하는 명령어가 나오면 DISK에 접근해야한다. DISK의 Operation은 CPU에 비해 매우 느리다. CPU가 디스크 컨트롤러에게 작업을 요청하고 기다린다면 효율이 떨어진다. 작업을 요청하고 작업이 완료되는 동안 다른 작업을 실행할 수 있는 방법이 없을까? 디스크작업이 끝나면 끝났다고 비동기적으로 결과를 받을 수 있는 메커니즘이 'Interrupt mechanism' 프로세서가 디바이스를 기다리지 않는다. 프로세서의 낭비를 막는다. Interrupt 발생 시 interrupt handler를 통해 처리한다. Instruction Cycle with Interrupts 이전 .. 2021. 4. 3.