os8 [운영체제 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] 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] Process Scheduler Process Scheduling Queues 프로세스를 스케줄링 하기 위한 3가지 큐가 존재한다. Job Queue - 모든 프로세스 저장하는 큐 Ready Queue - 실행 가능한 프로세스들이 CPU에 자원할당 받기 위해 기다리는 큐 Device Queue - I/O 장치에서 작업 처리하는 동안 프로세스들이 대기하는 큐 Long-term Scheduler (New -> Ready) 메모리는 한정되어 있는데 많은 프로세스들이 한꺼번에 메모리에 올라올 경우, 대용량 메모리(일반적으로 디스크)에 임시로 저장된다. 이 pool 에 저장되어 있는 프로세스 중 어떤 프로세스에 메모리를 할당하여 ready queue 로 보낼지 결정하는 역할을 한다. Time-sharing을 사용하는 현 컴퓨터에서는 사용하지 않.. 2021. 8. 18. [운영체제 OS] Process / PCB / Context Switch Process란? 실행중인 프로그램으로 스케줄링의 기본 단위이다. 프로세스가 실행되기 위해서는 메모리 공간에 올라가 있어야하는데, 그 공간을 Process Address Space라고 한다. 프로세스의 주소공간 (Process Address Space) Stack - 함수 호출시 지역변수와 매개변수를 저장하며, 함수 종료시 사라짐 Heap - 동적으로 메모리 할당시에 사용하며 메모리 할당 해제 전까지 사라지지 않음 Static data - 정적 데이터를 저장하는 곳으로 한번 저장하면 바뀌지 않고 프로그램 종료시 사라짐 Code - 기계어 저장 프로세스 2가지 구분 a. CPU-bound process - I/O burst < CPU burst 로 주로 연산위주의 프로세스를 의미 (ex : 기상청, 슈퍼컴.. 2021. 8. 18. 이전 1 2 다음