Computer Science 3

쓰레드 동기화 방법의 종류

Mutex / Semaphore / Monitor 공통점은 세가지 모두 운영체제의 동기화 기법이라는 것이다. 뮤텍스(Mutual Exclusion) 쓰레드의 동시 접근을 허용하지 않는다는 의미. 뮤텍스의 쓰레드 동기화 방법은 임계영역에 들어가기 위해 이 뮤텍스를 가지고 있어야 들어갈 수 있다. 예) 일종의 자물쇠와 같은 역할을 한다. 임계영역에 들어간 쓰레드가 뮤텍스를 이용해 임계영역에서 본인이 나올때까지 다른 쓰레드가 못들어오게 내부에서 자물쇠로 잠근다. 세마포어(Semaphore) 세마포어 역시 뮤텍스와 비슷한 역할을 하지만 세마포어는 동시 접근 동기화가 아닌 접근 순서 동기화에 더 관련있다. 모니터(Monitor) Mutex(Lock)와 Condition Variables(Queue라고도 함)을 가..

Computer Science 2021.02.24

쓰레드(Thread)란?

쓰레드란 프로그램(프로세스) 실행의 단위이며 하나의 프로세스는 여러개의 쓰레드로 구성이 가능하다. 하나의 프로세스를 구성하는 쓰레드들은 프로세스에 할당된 메모리, 자원 등을 공유한다. 프로세스와 같이 실행, 준비, 대기 등의 실행 상태를 가지며 실행 상태가 변할때마다 쓰레드 문맥교환(context switching)을 수행한다. 각 쓰레드별로 자신만의 스택과 레지스터를 가진다. 한순간에 하나의 쓰레드만이 실행 가능하다. 프로세스와 쓰레드의 차이 프로세스는 운영체제로부터 자원을 할당받는 작업의 단위이고 쓰레드는 프로세스가 할당받은 자원을 이용하는 실행의 단위이다. 프로세스는 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말한다. 하지만 프로세스 생성은 많은 시간과..

Computer Science 2021.02.23

운영 체제 개요

1. 운영 체제의 정의 OS는 컴퓨터 HW 바로 윗단에 설치되는 SW OS는 사용자 및 다른 모든 SW와 HW를 연결하는 SW 계층으로 그 위상은 위와 같다. 각종 SW들은 위 그림과 같이 HW와 OS가 한 몸으로 존재하는 컴퓨터 시스템 위에서 수행된다. 컴퓨터 전원을 On 했을 시 OS가 없으면 컴퓨터는 고철 덩어리에 불과하다. SW가 컴퓨터 시스템에서 수행되기 위해서는 메모리에 적재 되어야 한다. OS도 하나의 SW로서 전원이 켜짐과 동시에 메모리에 적재된다. 하지만 OS처럼 큰 큐모가 모두 메모리에 적재되면 한정된 메모리 공간의 낭비가 심하다. 따라서 OS 중 항상 필요한 부분만 메모리에 적재 그렇지 않은 부분은 필요할 때 메모리에 적재 후 사용 이 때 메모리에 상주하는 OS의 부분을 커널(Kern..

Computer Science 2021.02.23