반효경 교수님 7

[OS] 07. Deadlocks

교착상태(deadlock) The Deadlock Problem Deadlock 일련의 프로세스들이 서로 가진 자원을 기다리며 block 된 상태 Resource(자원) 예) I/O device, CPU cycle, memory space, semaphore 등 하드웨어, 소프트웨어 등을 포함하는 개념 프로세스가 자원을 사용하는 절차 Request(요청), Allocate(획득), Use(사용), Release(반납) Deadlock Example 1 시스템에 2개의 tape drive가 있다. 프로세스 P1과 P2 각각이 하나의 take drive를 보유한 채 다른 하나를 기다리고 있다. Deadlock Example 2 Binary semaphore A and B Deadlock 발생의 4가지 조건 ..

[OS] 06. Process Synchronization

Process Synchronization = 프로세스 동기화 (Concurrency Control = 병행제어) 데이터의 접근 데이터를 읽어와서 연산하고 수정하는 방식에서, 누가 먼저 읽었느냐에 따라 결과가 달라질 수도 있기 때문에 Synchronization 문제가 발생 Race Condition (경쟁 상태) 여러 주체가 하나의 데이터를 동시에 접근하려고 할 때 Synchronization 문제 예시 count++ 가 +1 하는 동안 count--가 기존 데이터를 읽음 count++가 작업 끝낸 후 S-box에 넣고 count--가 그 다음으로 S-box에 넣으면 count++의 작업은 덮어져서 없어짐 → 조율 필요 발생 하는 경우의 수 CPU가 여러 개인 multiprocessor system 공..

[OS] 05. CPU Scheduling

CPU and I/O Bursts in Program Execution program path: CPU 연속적으로 사용하는 단계와 I/O 단계 번갈아가면서 실행 CPU만 연속적으로 instruction을 실행하는 단계 CPU burst I/O를 실행하고 있는 단계 I/O burst (주로 사람이 interaction 하는 프로그램에 많음) CPU-burst Time의 분포 CPU는 CPU bound job을 많이 쓰고 I/O bound job은 CPU를 짧게 쓰는데 빈도가 잦을 뿐이다. 여러 종류의 job(=process)이 섞여 있기 때문에 CPU 스케줄링이 필요하다 interactive job(대부분 I/O bound job)에게 적절한 response 제공 요망 (사람이 답답함을 느끼기 때문 우선적..

[OS] 04. Process Management

프로세스 생성(Process Creation) 부모 프로세스(Parent process)가 자식 프로세스(children process) 생성 → 생성은 보통 복제 생성으로 트리(계층 구조) 형성 (프로세스의 문맥을 모두 복사) 프로세스 필요조건 자원 운영체제로부터 받는다 부모와 공유 공유(원칙적으로 공유 X) 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 → 부모 프로세스가 자식 프로세스를 생성하면 서로 별개의 프로세스가 되며 서로 CPU를 차지하기 위하거나 메모리를 많이 차지하기 위해 경쟁하게 됨 Copy-on-write (COW) 원칙적으로 공유하지는 않지만 부모와 자식의 내용이 똑같다면, 메모리 낭비하게 되므로 일단 공유하고 있다가 부모와 자식의 내용이 달..

[OS] 03. Process

프로세스 프로세스의 개념 “Process is a program in execution ” 프로세스의 문맥(context) 특정 시점을 놓고 봤을 때 프로세스가 어디까지 수행했는지 규명하는 것 program Counter가 어디를 가리키는가 (코드의 어느 부분까지 실행했는지) 현재 어떤 내용까지 스택에 쌓아놓았는가 현재 데이터 내부에 있는 변수의 값은 얼마인가 각종 register에 어떤 값을 넣어놓고 어떤 instruction까지 실행했는가 CPU 수행 상태를 나타내는 하드웨어 문맥 Program Counter (어디를 가리키고 있는가) 각종 register (현재 어떤 값을 가지고 있는가) 프로세스의 주소 공간 code, data, stack 프로세스 관련 커널 자료 구조 (운영체제) PCB(Proc..

[OS] 02. System Structure & Program Execution

컴퓨터 시스템 구조 I/O device (Input/Output Device) 각 I/O device 마다 device controller가 붙어 그 deveice를 전담하는 작은 CPU의 역할을 함 device controller의 CPU의 Memory처럼 작업 공간을 local buffer라고 부름 CPU (매 클럭마다 Memory에서 instruction 하나 읽어서 실행) registers : 메모리보다 더 빠르면서 정보를 저장할 수 있는 작은 공간 mode bit : CPU에서 실행되는 것이 운영체제인지 사용자 프로그램인지 구분해주는 것 0(운영체제) : 모든 작업 가능 1(사용자 프로그램) : 제한된 instruction만 실행 interrupt line : CPU는 항상 메모리에 있는 ins..

[OS] 01. Introduction to Operating Systems

운영체제 운영체제란 무엇인가? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 협의의 운영체제(커널) → 전공자 입장 운영체제의 핵심 부분으로 메모리에 상주하는 부분 광의의 운영체제 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념 운영 체제의 목적 하드웨어를 효율적 관리 (컴퓨터 시스템의 자원을 효율적으로 관리) 프로세서, 기억장치, 입출력 장치 등의 효율적 관리 사용자 간의 형평성 있는 자원 분배 (형평성) 주어진 자원으로 최대한 성능을 내기 (효율성) 사용자 및 운영체제 자신의 보호 프로세스, 파일, 메시지 (SW 자원) 등 관리 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 운영체제는 동시 사용자/프로그램들이 각각 독자적 컴퓨..