반응형

critical section 2

[ 운영체제 ] 프로세스 동기화

1. 동기화 1.1 동기화의 의미 동시에 실행되는 많은 프로세스들은 데이터를 주고받으며 실행될 수 있다. 이때의 올바른 실행을 위해서는 동기화가 필요하다. 프로세스 세계에서 동기화란 올바른 순서대로 실행되고 한 자원에 동시에 접근하지 않는 것이다. 특정 조건이 완료되어야 실행을 이어나가는 프로세스들이 있기 때문에 프로세스에서의 실행순서는 중요하다. 또, 한 프로세스가 연산을 다 끝내기 전에 접근해서 다른 연산을 하면 연산이 꼬여서 원하는 결과가 나오지 않을 수 있다. 1.2 생산자와 소비자 문제 왜 한 자원에 동시에 접근하지 않는 것이 중요한지 더 알아보자. 생산자와 소비자는 '총합' 이라는 데이터를 공유한다고 해보자. 생산자는 버퍼에 데이터를 넣고 총합을 1 증가 시키고, 소비자는 버퍼에서 물건을 빼고..

공부/운영체제 2023.02.08

[ OS ] Concurrency and Thread

1. Multi-threaded program 단일 스레스는 프로세스와 비슷하게 각 스레스 자체 PC와 레지스터, 스레드만의 스택을 가지고 있다. 하지만 멀티 스레드는 프로세스와 다르다. - 동일한 주소공간을 공유하여 같은 데이터에 접근할 수 있음 - 동일한 주소공간을 갖고 있어 페이지 테이블을 전환할 필요 없음 (context switch 필요 없음) * context switch는 프로세스가 바뀔 때만 일어남 스레드는 TCB(Thread Control Block)으로 관리된다. 스레드는 Heap 영역과 Program Code(read only) 부분은 공유하고 stack 영역은 스레드별로 가지고 있다. 1.1 스레드의 장점 1) 병렬성을 증가시킬 수 있다 - CPU의 개수가 계속 늘어나고 있는데 이때..

반응형