티스토리 뷰
동시성이란?
-동시에 여러 작업이 실행되는 것을 의미하는것, 멀티 태스킹, 멀티프로세스등의 환경을 뜻합니다. 여러 프로세스를 나눠 여러작업을 하는것은 병렬성(parallelism)이라고하며, 병렬성과 동시성은 비슷하지만 조금 다른 개념입니다.
Concurrency(동시성) | Parallelism(병렬성) | |
프로세스 개수 | 1개 | 여러개 |
전체 작업 | 여러작업가능 | 여러작업가능 |
한프로세스 내 작업 | 한개의 프로세스가 여러개작업 | 한개의 프로세스가 한개의 작업 |
의미 | 여러작업이 동시에 실행 | 작업들이 동시에 병렬적으로 실행 |
멀티 태스크 vs 멀티 프로세스
멀티태스크
-멀티태스크란 한 프로세스 내부에서 여러가지의 작업을 하는 것을 뜻합니다. 동시에 병렬적으로 진행하는것이 아닌, 빠르게 여러작업을 돌아가면서 수행하여 동시에 진행하는듯한 효과를 얻습니다.
이때, 각 작업들은 서로 연관되어 있을 수도있고, 아닐 수도 있지만, 서로 연관되어있을때가 더 적합합니다.
멀티프로세스
-멀티 프로세스란 여러 프로세스를 동시에 하여 여러가지의 작업을 병렬적으로하는것을 뜻합니다. 실제로 동시에 여러개의 작업을 수행합니다. 각 작업들은 서로 연관되지않은 작업일때가 적합합니다.
(서로 연관된 작업을 하려면 프로세스끼리 통신이 잘되어야하지만, 프로세스끼리는 메모리와 자원이 분리되어있어, 시스템콜로 서로 통신을 해야하는데, 이 과정에서 오버헤드가 너무많이 생겨 비효율적입니다.)
IPC(Interprocess Communication)
-서로 다른 프로세스 간에 데이터를 주고받거나 통신하는 매커니즘을 말합니다. 여러 프로세스가 동작하는 운영체제 환경에서 프로세스들은 독립적으로 실행되며, IPC는 이러한 프로세스간에 정보를 교환하고 상호작용하는데 사용됩니다.
- 파이프(PIPE)
- 시그널(SIGNAL)
- 파일(FILE)
- 소켓(SOCKET)
- 공유 메모리(SHARED MEMORY)
프로세스 VS 스레드
프로세스 | 스레드 | |
리소스,메모리 공유 | X | O |
프로세스와의 관계 | 프로세스 내부에서 나뉨 | |
상호작용 | IPC사용 | 공유 , IPC사용도 가능 |
오버헤드 | 오버헤드 큼 | 오버헤드 작음 |
안정성 | 높음 | 공유메모리때문에 낮음 |
'OS' 카테고리의 다른 글
운영체제에 기본 HW 개념 (0) | 2023.10.03 |
---|---|
OS(운영체제)의 구조와 원리 (0) | 2023.09.24 |
Shell(쉘) (0) | 2023.05.28 |
메모리 Stack변화 (0) | 2023.05.15 |
Address Translation 변환 과정 (VA -> PA) (0) | 2023.05.15 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 컨테이너
- 서버
- 문법
- 데이터
- 도커
- 클라우드
- 스프링
- IP주소
- 쿼리
- 인공지능
- 포트포워딩
- sql
- 보안
- 네트워크
- 자바
- 배포
- 데이터베이스
- JPA
- 자동화
- 소프트웨어공학
- DB
- 컴퓨터구조
- 테이블
- 파인튜닝
- nat
- 깃허브
- 메세지큐
- 프로토콜
- 깃
- 웹소켓
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함