본문 바로가기

Computer Science/Operating System3

멀티 프로세스보다 멀티 스레드를 지향하는 이유 멀티 프로세스보다 멀티 스레드를 지향하는 이유 스레드는 프로세스 보다 더 경량이여서 프로세스보다 생성과 제거가 쉽다. 스레드는 Stack을 제외한 메모리를 공유하기 때문에 멀티 프로세스에서 데이터를 공유하기 위해 사용하는 IPC 통신의 비용부담이 감소한다. 컨텍스트 스위칭 시 자원의 손실이 줄어든다. 프로세스 간의 컨텍스트 스위칭시 단순히 CPU 레지스터 교체 뿐만이 아니라 RAM과 CPU사이의 캐쉬메모리에 대한 데이터 까지 초기화 되므로 상당한 부담이 발생한다. 멀티 프로세스와 멀티 스레드의 적절한 상황 1) 멀티 프로세스 브라우저의 각 탭(크롬) 한 프로세스가 비정상적으로 종료되더라도 다른 프로세스가 영향을 받지 않음 자원을 공유할 필요가 없음 2) 멀티 스레드 워드 프로세스와 같은 응용 소프트웨어 .. 2021. 12. 16.
Synchronous(동기)와 Asynchronous(비동기)는 무엇인가요? Synchronous(동기)와 Asynchronous(비동기)는 무엇인가요?? 1. 동기(Synchronous)란? 동기(synchronous)는 동시에 일아난다는 뜻으로, 요청과 동시에 그 결과가 나온다는 약속이다. 즉, 요청을 하면 요청에 대한 응답(결과)이 올 때까지 기다려야 한다. 일반적으로 메소드의 실행과 동시에 반환 값이 기대되는 경우를 동기 라고 표현한다. 그리고 결과 값이 반환되기 전까지 blocking 되어 있다는 것을 의미한다. ⇒ system call이 완료를 기다림2. 비동기(Asynchronous)란? 비동기(Asynchronous)는 동시에 일어나지 않는다는 의미로, 요청과 결과가 동시에 일어나지 않는다는 약속이다. 즉, 요청과 동시에 결과가 올 것을 기대하지 않으며 실행을 지속.. 2021. 5. 17.
멀티 프로세스와 멀티 스레드 1. 프로세스란? 실행 중인 프로그램으로, 디스크에서 메모리로 적재되어 CPU의 할당을 받은 작업단위를 말한다. 별도의 메모리 영역(Code, Data, Stack, Heap)을 포함하여, CPU시간, 주소 공간등의 시스템 자원을 운영체제로부터 할당받는다. 단순하게 말하면, 메모리에 올라와 실행되고 있는 프로그램의 인스턴스이며, 일을 처리하는 일련의 과정을 말한다. ⇒ 자신만의 공간과 자원을 할당받아 사용하는 작업의 단위2. 스레드란? 스레드는 한 프로세스 내에서 동작되는 여러 실행 흐름으로 프로세스 내의 주소공간이나 자원을 공유할 수 있는 프로세스의 실행 단위이다. 스레드는 프로세스 내의 Code, Data, Heap 영역을 공유하고 Stack영역은 별도로 할당받는다. ⇒ 프로세스 안에서 실행의 흐름 .. 2021. 4. 27.