운영체제 7

[운영체제] CPU 스케줄링 (2)

Multilevel Queue-Ready queue를 여러 개로 분할1) foreground (interactive)2) background (batch-no human interaction)-각 큐는 독립적인 스케줄링 알고리즘을 가짐1) foreground-RR2) background-FCFS-큐에 대한 스케줄링이 필요Fixed priority schedulingTime slice: 각 큐에 CPU time을 적절한 비율로 할당(80% to foreground in RR, 20% to background in FCFS) Multilevel Feedback Queue -프로세스가 다른 큐로 이동 가능-에이징(aging)을 이와 같은 방식으로 구현할 수 있다-Multilevel-feedback-queue ..

[운영체제] CPU 스케줄링 (1)

CPU-burst Time의 분포 여러 종류의 job(=process)이 섞여 있기 때문에 CPI 스케줄링이 필요 -interactive job에게 적절한 response 제공 요망 -CPU의 I/O 장치 등 시스템 자원을 골고루 효율적으로 사용 프로세스으의 특성 분류 프로세스는 그 특성에 따라 다음 두 가지로 나눔 📍I/O-bound process -CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job -many short CPU bursts 📍CPU-bound process 계산 위주의 job -few very long CPU bursts CPU Scheduler & Dispatcher CPU Scheduler Ready 상태의 프로세스 중에서 이번에 CPU를 줄 프로세스를 고른다 D..

[운영체제] 프로세스 관리(2)

스케줄러 (Scheduler) 1. Long-term scheduler(장기 스케줄러 or job scheduler) 시작 프로세스 중 어떤 것들을 ready queue로 보낼지 결정 프로세스에 memory(및 각종 자원)을 주는 문제 degree of Multiprogramming을 제어 time sharing system에는 보통 장기 스케줄러가 없음 (무조건 ready) 2. Short-term scheduler(단기 스케줄러 or CPU scheduler) 어떤 프로세스를 다음번에 running시킬지 결정 프로세스에 CPU를 주는 문제 충분히 빨라야 함(millisecond 단위) 3. Medium-Term Scheduler(중기 스케줄러 or Swapper) 여유 공간 마련을 위해 프로세스를 통..

[운영체제] 프로세스 관리 (1)

프로그램의 실행(메모리 load) process의 virtual memory의 주소 공간과 커널의 주소 공간은 code, data, stack으로 이루어져 있음 커널 주소 공간의 내용 사용자 프로그램이 사용하는 함수 ✓함수(function) 1. 사용자 정의 함수 자신이 프로그램에서 정의한 함수 2. 라이브러리 함수 자신의 프로그램에서 정의하지 않고 갖다 쓴 함수 자신의 프로그램의 실행 파일에 포함되어 있다 3. 커널 함수 운영체제 프로그램의 함수 커널 함수의 호출=시스템 콜 Mode bit=1 -> 사용자 모드 Mode bit=0 -> 모니터 모드=커널 모드=시스템 모드 프로세스의 개념 "Process is a program in execution" 프로세스의 문맥(context) -CPU 수행 상태를..

[운영체제] 컴퓨터 시스템의 구조(2)

📍인터럽트(Interrupt) 인터럽트 당한 시점의 레지스터와 program counter를 save한 후 CPU의 제어를 인터럽트 처리 루틴에 넘긴다 Interrupt(하드웨어 인터럽트): 하드웨어가 발생시킨 인터럽트 Trap(소프트웨어 인터럽트) -Exception: 프로그램이 오류를 범한 경우 -System call: 프로그램이 커널 함수를 호출하는 경우 Ex. -프로그램이 실행되다가 디스크에서 파일을 읽어와야 한다면 I/O작업은 특권명령이기 때문에 프로그램은 운영체제에 system call을 함 운영체제는 disc controller에 파일을 읽으라고 요청 -> 이 작업은 오래 걸리므로 다른 프로그램에게 먼저 cpu 넘김. disc controller가 파일을 다 읽으면 cpu에 interrupt..

[운영체제] 컴퓨터 시스템의 구조(1)

운영체제의 분류 동시 작업 가능 여부 1. 단일 작업(single tasking) 한 번에 하나의 작업만 처리 ex. MS-DOS 프롬프트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없음 2. 다중 작업(multi tasking) 동시에 두 개 이상의 작업 처리 ex. UNIX, MS Windows 등에서는 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있음 사용자 수 1. 단일 사용자(single user) ex. MS-DOS, MS Windows 2. 다중 사용자(multi user) ex.UNIX, NT server 처리 방식 1. 일괄 처리(batch processing) -작업 요청의 일정량 모아서 한꺼번에 처리 -작업이 완전 종료될 때까지 기다려야 함 ..

[운영체제] 운영체제 개요

운영체제란? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 운영체제의 목적 1. 컴퓨터 시스템의 자원을 효율적으로 관리🌟 -CPU, 메모리, I/O 장치 등의 효율적 관리 효율성: 주어진 자원으로 최대한의 성능을 내도록 형평성: 특적 사용자/프로그램의 지나친 불이익이 발생하지 않도록 -사용자 및 운영체제 자신의 보호 2. 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 -운영체제는 동시 사용자/프로그램들이 각자 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공 -하드웨어를 다루는 복잡한 부분을 운영체제가 대행 어떤 프로그램에게 CPU 사용권을 줄까? CPU 스케줄링 한정된 메모리를 어떻게 쪼개어 쓰지? 메모리 관리 디스크에 들어온 요청을 어떤..