Category 185

CPU Scheduling

1.Basic Concepts - 다중프로그래밍의 목적은 CPU 이용률을 최대화하기 위해 항상 실행 중인 프로세스를 가지게 하는데 있다. - CPU가 유휴 상태가 될 때마다, OS는 준비 완료 큐에 있는 프로세스들 중에서 하나를 실행해야한다. *반드시 FIFO 방식의 큐가 아니어되 된다. - CPU scheduling decisions may take place when a process. :Switches from running to waiting state.(입/출력 요청, 자식프로세스중 하나가 종료되기 위해 wait를 호출) ->Non preemptive. :Switches from running to ready state.(인터럽트 발생) ->preemptive. :Switches from wai..

Thread

Threads는 쓰레드ID, 프로그램 카운터, 레지스터 집합, 스택으로 구성된다.Thread들은 프로그램 코드, 데이타 및 기타 자원들을 공유한다. *Benefits 1.응답성: 응용프로그램이 긴 작업을 수행하더라도 프로그램의 수행이 계속된는 것을 허용. 2.자원공유: 자동적으로 그들이 속한 프로세스의 자원들과 메모리를 공유한다. 같은 주소내에 활동성 쓰레드를 여러게 만들 수있다. 3.경제성.:process creation, context switching time은 thread creation, context switcing 의 30배,5배. 4.다중 처리기 구조의 활용: 다중 처리기 구조에서 더욱 속도 증가. *user level Threads - 사용자 수준의 쓰레드 라이브러리에 의해 구현되며 커널..

Process

Process 1. 프로세스의 정의 ① 실행중인 프로그램 ② 주기억장치에 저장된 프로그램 ③ PCB(Process Control Block)와 결합된 형태의 코드 //PCB란 프로세스가 작업도중 필요한 정보나 스케쥴에 필요한 여러 가지 정보를 기억 하고 있는 구조체 ④ 작업 스케쥴러(Job Scheduler)에 의해서 생성되어 주기억 장치에 진입함 2. 프로세스와 프로그램의 차이점 프로그램은 수동적 개체(passive entity)이고 프로세스는 능동적 개체 (active entity)이며 일 반적으로 프로세스는 프로그램보다 작은 단위로 되어있다. 3. 프로세스의 계층 ① 사용자 프로세스 : 사용자 코드를 수행하는 프로세스 ② 운영체제 프로세스 : 사용자가 입력한 명령어를 해석하는 쉘 프로세스나 입출력 ..