CS 공부/운영체제13 멀티 프로세스(Multi-Process) vs 멀티 스레드(Multi-Thread) / Chrome의 탭은 프로세스다 ※ 멀티 프로세스나 멀티 스레드의 용어에 대해 자세히 알고싶다면 다음 포스팅을 먼저 참고하자. 멀티 프로세스(Multi Process)와 시분할 시스템의 동시성(Concurrency) 멀티 프로세스란? 멀티 프로세스는 2개 이상의 프로세스가 동시에 실행되는 것을 말한다. 동시에라는 말은 동시성(concurrency)과 병렬성(parallelism) 두 가지를 의미한다. 동시성과 병렬성의 차이 동 hyolls100.tistory.com 멀티 스레드(Multi Thread)란? 멀티 스레드란? 하나의 프로세스가 동시에 여러 개의 일을 수행할 수 있도록 해주는 것이다. 즉 하나의 프로세스에서 여러 작업을 병렬로 처리하기 위해 멀티 스레드를 사용한다. 멀티 스레드에 hyolls100.tistory.com 멀티 .. 2023. 8. 14. 멀티 스레드(Multi Thread)란? 멀티 스레드란? 하나의 프로세스가 동시에 여러 개의 일을 수행할 수 있도록 해주는 것이다. 즉 하나의 프로세스에서 여러 작업을 병렬로 처리하기 위해 멀티 스레드를 사용한다. 멀티 스레드에서는 한 프로세스 내에 여러 개의 스레드가 있고, 각 스레드들은 스택 메모리를 제외한 나머지 영역(Code, Data, Heap)영역을 공유하게 된다. ※ 스레드와 프로세스의 용어가 헷갈리다면 다음 포스팅을 참고하자. 프로세스 vs 스레드 프로그램(Program) 이란? 사전적 의미 1. “어떤 작업을 위해 실행할 수 있는 파일” (실행파일) 2. 단순히 명령어 리스트를 포함하는 파일 프로세스(Process) 란? 사전적 의미 1. “컴퓨터에서 연속적 hyolls100.tistory.com 스택 메모리 & PC Regis.. 2023. 8. 14. 멀티 프로세스(Multi Process)와 시분할 시스템의 동시성(Concurrency) 멀티 프로세스란? 멀티 프로세스는 2개 이상의 프로세스가 동시에 실행되는 것을 말한다. 동시에라는 말은 동시성(concurrency)과 병렬성(parallelism) 두 가지를 의미한다. 동시성과 병렬성의 차이 동시성은 CPU core가 1개일 때, 여러 프로세스를 짧은 시간동안 번갈아 가면서 연산을 하게 되는 시분할 시스템(time sharing system)으로 실행되는 것이고, 병렬성은 CPU core가 여러개일 때, 각각의 core가 각각의 프로세스를 연산함으로써 프로세스가 동시에 실행되는 것이다. ★CPU core가 여러개일 때는 여러 프로세스가 동시에 처리됨을 이해할 수 있지만, CPU core가 1개일 때는 어떻게 여러 프로세스를 동시에 실행시키는 것일까? 하나의 CPU는 매 순간 하나의 프.. 2023. 8. 11. 뮤텍스(Mutex)와 세마포어(Semaphore) / 동기화문제와 임계영역 동기화 문제를 해결하기 위해 뮤텍스(mutex), 세마포어(Semaphore) 기법 등을 사용할 수 있다. 뮤텍스와 세마포어를 설명하기 위해 알아야 할 용어는 동기화 문제와 임계영역이다. 동기화 문제란 무엇인가? 서로 다른 process나 thread가 메모리 영역을 공유하기 때문에 (여기서, process경우는 IPC 공유 메모리 방식을 이용하는 경우이다.) 여러 process나 thread가 동일한 자원에 동시에 접근하여 엉뚱한 값을 읽거나 수정하게 되는 문제를 말한다. 예시를 통해 알아보자. count++를 CPU 입장에서 분해해보면 3개의 atomic operations으로 나뉜다. count 변수의 값을 가져온다. count 변수의 값을 1 증가시킨다. 변경된 count 값을 저장한다. CPU는.. 2022. 9. 4. 경쟁 상태(Race Condition)란 ? 경쟁 상태(Race Condition) 두 개 이상의 프로세스가 공통 자원을 병행적으로(concurrently) 읽거나 쓰는 동작을 할 때, 공용 데이터에 대한 접근이 어떤 순서에 따라 이루어졌는지에 따라 그 실행 결과가 같지 않고 달라지는 상황을 말한다. Race의 뜻 그대로, 간단히 말하면 경쟁하는 상태, 즉 두 개의 스레드가 하나의 자원을 놓고 서로 사용하려고 경쟁하는 상황을 말한다. 공통 자원에 여러 프로세스가 동시에 접근할 때 자료의 일관성을 해치는 결과가 나타날 수 있다. Race Condition이 발생하는 경우 1. 커널 작업을 수행하는 중에 인터럽트가 발생할 때 문제점 : 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작한다. 해결법 : 커널모드에서 .. 2022. 8. 28. IPC(Inter Process Communication) 프로세스는 독립적으로 실행된다. 즉, 독립 되어있다는 것은 다른 프로세스에게 영향을 받지 않는다고 말할 수 있다. (스레드는 프로세스 안에서 자원을 공유하므로 영향을 받는다) 때문에, 원칙적으로 다른 프로세스의 주소 공간을 참조할 수 없다. 하지만, 이런 독립적 구조를 가진 프로세스 간의 통신을 해야 하는 상황이 있을 것이다. 이를 가능하도록 해주는 것이 바로 IPC(Inter Process Communication) 통신이다. 프로세스는 커널이 제공하는 IPC 설비를 이용해 프로세스간 통신을 할 수 있게 된다. ※ 커널이란? 운영체제의 핵심적인 부분으로, 다른 모든 부분에 여러 기본적인 서비스를 제공해준다. IPC 종류 공유메모리 방식 통신을 이용한 설비가 있지만, 데이터 자체를 공유하도록 지원하는 방.. 2022. 8. 7. 이전 1 2 3 다음