CS34 [운영체제 OS] Kernel Thread vs User Thread Note 사용자 수준 스레드와 커널 수준 스레드는 생성 주체에 따라 구분된다. 사용자가 라이브러리를 만들고 관리하는지, 운영체제의 커널이 만들고 관리하는지에 따른 차이다. Kernel Thread 커널레벨에서 생성되는 스레드로 커널이 스레드와 관련된 모든 작업을 직접 관리 장점 모든 스레드가 System Call로 구현 가능 커널이 직접 스레드와 관련된 모든 작업을 처리 단점 커널 단 수행시간이 오래걸려 오버헤드가 높음 User Thread 사용자 레벨 라이브러리 통해 구현된 스레드로 커널 영역 위에서 동작 장점 스레드 관련 작업시 커널을 호출하지 않아 오버헤드가 낮음 커널에 독립적으로 스케줄링 가능하여 모든 운영체제에 적용 가능 단점 커널이 스레드 관리에 직접 개입하지 못함 User mode에서 실행되.. 2021. 8. 23. [운영체제 OS] 동기 VS 비동기 / Blocking vs Non-Blocking Note : 용어가 헷갈릴 수 있기 때문에동기 & 비동기는 시간 관점, Blocking & Non-Blocking은 제어권 관점에서 생각하기 동기 (Synchronous) 요청과 그 결과가 동시에 일어나는 것. 요청 후 결과가 와야만이 그 다음 작업이 이루어지는 방식. 특징 간단하고 직관적 어떠한 일을 처리하는 동안 다른 일을 하지 못함 작업 완료여부를 호출한 쪽에서 신경 씀 비동기 (Asynchronous) 요청과 그 결과가 동시에 일어나지 않는 것. 요청 후 결과가 오는 동안 그 다음 작업이 이루어지는 방식. 특징 동기보다 복잡 어떠한 일을 처리하는 동안 다른 일을 할수 있어 자원을 효율적으로 사용 작업 완료여부를 호출된 쪽에서 신경 씀 Blocking I/O 호출된 함수가 자신의 작업을 모두 끝낼때.. 2021. 8. 23. [운영체제 OS] Deadlock (교착상태) Deadlock이란? 일련의 프로세스들이 서로 가진 자원을 요청하고 기다리며 blocked된 상태 Deadlock 발생 필요조건 4가지 Mutual Exclusion (상호 배제) - 한 자원에 대해 여러 프로세스 접근이 불가함 Hold and Wait (점유와 대기) - 프로세스가 자원을 가지고 있는 상태로 다른 프로세스가 사용하고 있는 자원의 반납을 기다림 No preemption (비선점) - 다른 중요한 프로세스가 들어와도 현재 수행하는 프로세스를 계속 수행함 Circular Wait (순환대기) - 각 프로세스가 순환적으로 다음 프로세스가 요구하는 자원을 소유함 Deadlock 처리 방법 Deadlock 해결 방법에는 예방, 회피, 회복, 무시 4가지가 존재하지만, 대표적인 방법인 회피에 대해서.. 2021. 8. 23. [운영체제 OS] Synchronization Race Condition 여러 프로세스가 동기화 없이 동시에 공유 자원에 접근하여 결과값에 영향을 줄 수 있는 상태 자료의 일관성 문제가 발생 예시 ) 남자친구, 여자친구가 긱자 데이트 통장에서 동시에 돈을 인출하는 상황 Critical Section Problem (임계 영역 문제) Critical Section은 공유 데이터를 접근하는 코드 부분을 의미 Critical Section Problem은 한 프로세스가 처리되고 있는 도중 다른 프로세스가 접근하여 발생하는 동기화 문제 Critical Section Problem 해결하기 위한 3가지 기본조건 Mutual Exclusion (상호 배제) : 어떤 프로세스가 Critical Section부분을 수행 중이면, 다른 프로세스는 Critical S.. 2021. 8. 23. [운영체제 OS] Process vs Thread 1. Process vs Thread Process 실행중인 프로그램으로 운영체제로 부터 CPU 할당을 받을 수 있는것 프로세스는 각자 독립된 공간(Code, Data, Heap, Stack)을 가진다. 프로세스 간 직접적인 통신이 불가하며, IPC(Inter-Process Communication) 방식을 통해서만 가능하다. Message Passing : 운영체제(커널)의 도움을 받아 프로세스간 통신. 커널이 알아서 동기를 맞춰주지만, 오버헤드 높음. Shared Memory : 공유 메모리 공간을 통해 프로세스간 통신. 동기를 직접 맞춰줘야하지만 오버헤드 낮음. 프로세스는 기본적으로 1개 이상의 스레드(메인스레드)를 가진다. Thread 프로세스 내에서 실행되는 여러 흐름의 단위, 경랑 프로세스 스.. 2021. 8. 21. [운영체제 OS] CPU Scheduling Scheduling Criteria 스케줄링의 성능평가에는 크게 5가지 지표가 사용된다. 이 지표들은 앞선 Process 글에서 설명했던 CPU-bound Process와 I/O-bound Process관점으로 나누어볼 수 있다. 1. CPU 사용률 : 전체시간 중 CPU가 놀지않고 일한 시간 2. 처리량 : 단위시간당 처리량 3. 소요시간 : 프로세스가 다 수행되고 도착하는데까지 걸리는 시간 4. 대기시간 : Ready Queue에서 기다리는 시간 5. 응답시간 : 중간중간 사용자에게 응답주는 시간 시간보다 처리량이 중요한 CPU-bound Process에서는 1,2번을 maximize하는 방향으로, 사용자와 interactive한 I/O-bound Process에서는 3,4,5번을 minimize하는.. 2021. 8. 21. 이전 1 2 3 4 5 6 다음