본문 바로가기
반응형

process3

Web Server 실습 +Dispatcher 사용 다중스레드 웹 서버에서 작업을 분배받는 과정을 producer-consumer 모델로 만 들어 본다. Dispatcher thread는 작업을 worker thread들에게 배분하며, 이때 한 개의 원형 큐가 버퍼로써 사용되게 설계해볼 것이다. Dispatcher란? CPU의 제어권을 STS(Short-Term Scheduling)에 의하여 선택된 Process에게 넘겨주는 모듈을 말한다. 인터럽트 또는 시스템 호출의 결과로 커널 모드에서 제어를 받는다. 디스패처는 모든 프로세스 전환 중에 호출되므로 가능한 한 빨라야한다. 요구사항 1. Dispatcher는 producer로써, 원형 큐(버퍼)에 작업 내용을 기록한다. 2. Worker는 consumer로써, 원형 큐(버퍼)로부터 작업 내용을 읽는다. .. 2020. 10. 2.
[운영체제] 스레드(Thread) + 실습을 통해 직접 깨우치기! 프로세스와의 차이점? 일단 실습을 해보기전에! 스레드(Thread)는 무슨 역할을 하고 무슨 기능이있는지 간단하게 살펴보겠습니다. 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다. 그러면 전에 공부했던 프로세스와 차이점은 무엇일까? 스레드와 프로세스의 차이점 프로세스는 서로 완벽히 독립적인 공간을 가진다. 각자가 각자의 스택과 데이터 영역을 가지고, 보호받는다. 프로세스는 시작할 때 운영체제에서 PCB와 메모리 공간을 할당받고 초기화하는 과정이 필요하다. 다른 프로세스의 영역을 들여다볼 수.. 2020. 9. 28.
[운영체제] 프로세스 상태 +실습을 통해 직접 깨우치기! 이번에는 프로세스 상태에 대한 공부를 해볼 것이다. 프로세스 상태는 new, ready, running, waiting, terminated로 나눠질수있습니다. 이런식의 로직을 가지고있다. 리눅스 기반에 운영체제에서 공부했습니다. running.c 코드 #include int main() { do { } while (1); } 아래와 같은 명령어를 사용해보자. gcc -o running running.c ./running & ps -l 1) ps -l 명령을 수행하면 프로세스의 상태는 어떻게 표시되는가? - R로 표기된다. 2) ps -l 명령을 반복하여 수행해보면 표시는 바뀌는가, 그렇지 않은가? - 바뀌지않는다. 3) 이 표시가 의미하는 프로세스의 상태는 무엇인가? - 실행중 또는 실행가능 (실행 큐.. 2020. 9. 28.
반응형