운영체제 9

운영체제 기술 면접 대비

프로세스와 쓰레드의 차이프로세스는 실행 중인 프로그램을 말하며 완전히 독립적이기 때문에메모리 영역(Code, Data, Stack, Heap)을 다른 프로세스와 공유하지 않는다.프로세스는 최소 1개의 쓰레드를 가지고 있다.쓰레드는 프로세스 내에서 Stack만 따로 할당 받고 그 이외의 메모리 영역(Code, Data, Heap)을공유하기 때문에 다른 쓰레드의 실행 결과를 즉시 확인할 수 있다.쓰레드는 프로세스 내에 존재하며 프로세스가 할당받은 자원을 이용하여 실행된다.  멀티 프로세스와 멀티 쓰레드의 특징멀티 프로세스는 하나의 프로세스가 죽어도 다른 프로세스에 영향을 끼치지 않고 계속 실행된다는 장점이 있지만멀티 쓰레드보다 많은 메모리 공간과 CPU 시간을 차지한다는 단점이 있다.멀티 쓰레드는 멀티 프로..

스터디 2024.06.08

[운영체제] CPU 스케줄링 (3) + Process Synchronization

Algorithm Evaluation Queueing models확률 분포로 주어지는 arrival rate와 service rate 등을 통해각종 performance index 값을 계산 Implementation(구현) & Measurement(성능 측정)실제 시스템에 알고리즘을 구현하여 실제 작업(workload)에대해서 성능을 측정 비교 Simulation (모의 실험)알고리즘을 모의 프로그램으로 작성후 trace를 입력으로하여 결과 비교  Process Synchronization -E-box가 여럿 있는 경우 Race Condition(경쟁 상태)의 가능성이 있음-Multiprocessor system-공유메모리를 사용하는 프로세스들커널 내부 데이터를 접근하는 루틴들 간(ex. 커널모드 수행..

[운영체제] 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 스케줄링 한정된 메모리를 어떻게 쪼개어 쓰지? 메모리 관리 디스크에 들어온 요청을 어떤..