CS/OS 8

Deadlock Resolution 1 (기본개념 및 분류)

데드락의 개념: Blocked / Asleep state => 프로세스가 특정한 이벤트, 자원을 기다리는 상태 Deadlock state => 프로세스가 발생 가능성이 없는 이벤트를 기다리는 상태 그렇다면 Deadlock과 starvation의 차이는??? 데드락은 asleep 상태에서 일어날 가능성이 zero를 기다리는 것이고, starvation은 ready상태에서, cpu를 기다리는 것 이다. 자원을 분류할 때 일반적으로 HW / SW 로 분류할 수 있으며, 이외 다른 분류법은, 선점 가능여부 할당 단위에 따른 분류 동시 사용가능 여부 재사용 가능 여부 4가지가 있으며, 각각의 특징은 아래와 같다. 선점 가능 여부에 따른 분류 => cpu는 선점 당해도 돌아와서 다시 일을 할 수 있다(Context..

CS/OS 2022.02.11

Process Synchronization (동기화)

다중 프로그래밍이란, 여러 개의 프로세스들이 존재할때(보통의 경우에 해당) 프로세스들은 서로 독립적으로 동작하고, 공유자원 or 데이터가 있을 때 문제가 발생한다. 이때 동기화가 필요하며, 동기화란 프로세스들이 서로 정보를 공유하며 동작을 맞추는 것이다. 비동기적 => 프로세스들이 서로에 대해 모름 병행적 => 여러 개의 프로세스들이 동시에 시스템에 존재 병행 수행중인 비동기적 프로세스들이 공유 자원을 동시 접근할 때, 문제가 발생할 수 있다. 그러므로 동기화가 필요하다! Shared data(공유 데이터) => 여러 프로세스들이 공유하는 데이터 Critical section(임계 영역) => 공유 데이터를 접근하는 코드영역 Mutual exclusion(상호배제) => 둘 이상의 프로세스가 동시에 cr..

CS/OS 2022.02.07

Process Scheduling 2(기본 스케줄링 및 알고리즘)

FCFS (선착순 알고리즘) (비선점) => 도착시간을 기준으로 하며, 들어온 순서대로 일만하기 때문에 자원을 효율적으로 사용, 즉 스케줄링 오버헤드가 작다. 배치시스템(일괄처리)에 적합하며, interactive에는 부적합한 방식 RR (Round Robin) (선점) => 도착시간을 기준으로 하며, 자원 사용에 대한 제한시간(time quantum)이 있음. 제한시간이 지나면 자원을 반납해야하며, context switch 오버헤드가 크다. interactive 시스템에 적합하고, 제한시간이 성능을 결정하는 핵심 요소이다. SPN (Shortest process next) (비선점) ====> 변형된 것이 SRTN(선점)(잔여시간 추적) => 실행시간을 기준으로 대기 프로세스들 중 Burst time..

CS/OS 2022.02.04

Process Scheduling 1

다중프로그래밍(Multi- Programming) 이란, 여러개의 프로세스가 시스템 내 존재하는 것이고, 이에 따라 자원을 할당할 프로세스를 선택해야한다. 이것이 스케쥴링의 기본적인 개념이다. 자원관리에는 (시간분할, 공간분할) 방식이 있는데, 프로세스 스케쥴링 시간분할에 속한다. 스케쥴링의 목적은 시스템의 성능 향상에 있다. 성능의 지표 응답시간 (response time) 작업처리량(throughput) 자원활용도(resource utilization) 이 지표중에서 목적에 맞는 것을 고려하여 스케쥴링 기법을 선택하면 된다. 또, 스케쥴링은 선점 스케쥴링(preemtive scheduling) 비선점 스케쥴링(Non-preemtive scheduling)로 나뉜다. 선점 스케쥴링은 도중에 우선순위가 ..

CS/OS 2022.02.02

스레드 관리(Thread management)

프로세스는 자원을 할당받고 자원을 제어해서 우리가 원하는 목적을 달성한다. 이 때 프로세스가 이 자원을 제어하는 작업을 Thread로 표현된다. 또 하나의 프로세스 안에 스레드는 여러개가 될 수 있다. (제어가 여러개) 프로세스 내 스레드들 각각 스택들을 가지고 있으며 동일한 주소 공간을 공유한다. Thread Light Weight Process(LWP) =>자원은 공유하고 제어부분만 가지고 있기 때문에 가볍다. CPU 활용의 기본 단위 구성요소 => Thread ID, Register set, Stack 장점 자원 공유(Resource sharing) => 효율성 증가(커널의 개입을 피할 수 있다) 사용자 응답성(Responsiveness) => 일부 스레드의 처리가 지연되도, 타 스레드는 작업O 경..

CS/OS 2022.01.30

프로세스(Process) 관리, 자원(Resource)의 개념

OS에서 가장 많이 쓰이는 단어라 해도 과언이 아닌 프로세스는 실행을 위해 시스템(커널)에 등록된 작업이다. 커널에 등록되는 이유는 시스템을 잘 관리하고 성능향상을 위함이다. 자원이란, 커널의 관리 하에 프로세스에게 할당/반납 되는 수동적 객체이다. H/W 자원에는 프로세서, 메모리 등이 있고, S/W 자원에는 메세지, 시그널 등이 있다. 프로세스 관리에 대해 이해하려면 프로세스 상태(Process States)에 대해 먼저 이해해야한다. 먼저 Created상태는 어떤 작업이 커널에 등록된 상태이며, 이때 PCB가 할당된다. 여기서 쓸 수 있는 메모리 공간이 있느냐에 따라 ready로 갈지 suspended ready로 갈지 결정된다. 메모리가 있어서 ready상태로 가게 되었을 때, 프로세서(CPU)외..

CS/OS 2022.01.29

운영체제의 역할˙구분

˙OS의 역할을 크게 세가지로 나눌 수 있다. User Interface(편리성) =>CUI, GUI, EUCI(특화된 UI, ex)MP3) Resource management(효율성) System management(시스템보호) OS의 구분 (동시사용자 수 / 동시실행 프로세스 수/ 작업수행방식) 동시 사용자수 Single-User System(우리가 보통 쓰는 system) (window, android) Multi-user System(Unix, Linux) 동시실행 프로세스 수 Single-tasking system => 시스템 내에 하나의 프로세스만 존재하기 때문에 간단. (ex. MS-DOS) Multi-tasking System => 동시에 여러개의 프로세스를 수행하기 때문에 OS가 복잡하다..

CS/OS 2022.01.28

운영체제(OS)의 기본

운영체제란, 컴퓨터 HW를 효율적으로 관리하여 사용자에게 서비스를 제공하는 SW 하드웨어는 크게 3가지로 나뉜다. 프로세서 (CPU, GPU) 메모리(주기억장치, 보조기억장치) 주변장치 프로세서 => 컴퓨터의 두뇌역할을 하며 중앙처리장치라고도 불린다. CPU 안에는 레지스터, 연산장치, 제어장치가 들어가있고, 레지스터는 프로세서 내부에 있는 메모리다. 프로세서가 사용할 데이터를 저장하며 컴퓨터에서 가장 빠른 메모리다. 종류로는 데이터레지스터, 주소레지스터, 프로그램카운터(다음 실행할 명령어의 주소 보관), 명령어 레지스터(현재 실행하는 명령어 보관), 누산기 등이 있다. OS는 프로세서에게 처리할 작업 할당 및 관리를 하며 프로그램 간의 프로세서 사용시간을 조절해준다. 메모리 캐시(Cache) 프로세서 ..

CS/OS 2022.01.28