티스토리 뷰
Process 란?
프로그램을 실행하도록 설정된 시스템 호출로 생성된 UNIX 환경(예: 파일 설명자, 사용자 ID 등)
Process | The UNIX environment (such as file descriptors, user ID, and so on) created with the fork(2) system call, which is set up to run a program. |
스레드란?
" 프로그램이 작업을 완료하기 위해 사용할 수 있는 단일 프로세스"
- 각 스레드는 한 번에 하나의 작업만 수행할 수 있다!
- 다음 작업을 시작하려면 반드시 앞의 작업이 완료되어야 하는데, 컴퓨터 CPU는 코어가 여러개라 한 번에 여러가지 일을 처리함.
프로세스 컨텍스트 내에서 실행되는 일련의 명령
Thread | A sequence of instructions executed within the context of a process. |
싱글/ 멀티 쓰레드란?
- Single-threaded : 단일 스레드에 대한 액세스를 제한
- Multithreaded : 둘 이상의 스레드에 대한 액세스를 허용
Single-threaded | Restricting access to a single thread. |
Multithreaded | Allowing access to two or more threads. |
Concurrency vs. Parallelism ?
Concurrency is when two or more tasks can start, run, and complete in overlapping time periods. It doesn't necessarily mean they'll ever both be running at the same instant. For example, multitasking on a single-core machine.
Parallelism is when tasks literally run at the same time, e.g., on a multicore processor.
동시성은 두 개 이상의 작업이 겹치는 기간에 시작, 실행 및 완료될 수 있는 경우입니다. 반드시 둘 다 같은 순간에 실행된다는 의미는 아닙니다. 싱글 코어 시스템에서 멀티태스킹을 하는 것!
=> 즉, 오버랩된다는 것이지 꼭 ' 동시에 실행되는 것 ' 은 아님!
병렬 처리는 작업이 문자 그대로 동시에 실행되는 경우(예: 멀티코어 프로세서)입니다.
=> 문자그대로 멀티코어 프로세서에서 '동시에 실행 '되는 것!
Sequential Execution vs. Concurrent Execution vs Parallel Execution
Concurrency: Interruptability 동시성: 인터럽트 가능성
Parallelism: Independentability 병렬성: 독립성
나는 실제 세계의 비유로 명확히 할 것입니다. 하루에 2개의 매우 중요한 작업을 완료해야 한다고 가정해 보겠습니다.
1. 여권 받기
2. 프레젠테이션 완료
이제 문제는 task-1에서 여권을 받기 위해 줄을 4시간 동안 기다려야 하는 매우 관료적인 관공서에 가야 한다는 것입니다.
한편, task-2는 사무실에서 요구하는 중요한 작업입니다. 둘 다 특정 날짜에 완료해야 합니다.
Case 1: Sequential Execution
사례 1: 순차 실행
일반적으로 운전을 해서 2시간 동안 여권 사무소에 가고, 4시간 동안 줄을 서서 일을 끝내고, 다시 2시간을 운전하고 집에 가서 5시간 더 깨어 있고 프레젠테이션을 합니다.
Case 2: Concurrent Execution
사례 2: 동시 실행
하지만 당신은 똑똑합니다. 당신은 미리 계획합니다. 노트북을 들고 줄을 서서 기다리면서 프레젠테이션 작업을 시작합니다. 이렇게 하면 집에 돌아와서 5시간 대신 1시간만 더 일하면 됩니다.
이 경우 두 작업 모두 사용자가 수행합니다. 줄을 서서 기다리는 동안 여권 작업을 중단하고 프레젠테이션 작업을 했습니다. 번호가 호출되면 프레젠테이션 작업을 중단하고 여권 작업으로 전환했습니다. 시간 절약은 본질적으로 두 작업의 중단 가능성으로 인해 가능했습니다.
동시성(IMO)은 ACID의 "격리" 속성으로 이해될 수 있습니다. 하위 트랜잭션이 인터리브 방식으로 각각 수행될 수 있고 최종 결과가 두 작업이 순차적으로 수행된 것과 동일한 경우 두 데이터베이스 트랜잭션은 격리된 것으로 간주됩니다. 여권 및 프레젠테이션 작업 모두에 대해 귀하가 유일한 집행자임을 기억하십시오.
Case 3: Parallel Execution
사례 3: 병렬 실행
자, 당신은 똑똑한 친구이므로 분명히 상위에 있고 조수가 있습니다. 따라서 여권 작업을 시작하기 위해 떠나기 전에 그에게 전화를 걸어 프레젠테이션의 첫 번째 초안을 준비하라고 합니다. 하루 종일 보내고 여권 작업을 마치고 돌아와서 메일을 보고 프레젠테이션 초안을 찾습니다. 그는 꽤 단단한 일을 해냈고 2시간 동안 약간의 수정을 가하면 완성됩니다.
이제 당신의 비서는 당신만큼 똑똑하기 때문에 계속해서 설명을 요구할 필요 없이 독립적으로 작업할 수 있었습니다. 따라서 작업의 독립성으로 인해 두 명의 다른 집행자가 동시에 작업을 수행했습니다.
Back to Computer Science
Case 1: Interrupt processing.
사례 1: 인터럽트 처리.
Case 2: When there is only one processor, but all executing tasks have wait times due to I/O.
사례 2: 프로세서가 하나뿐이지만 모든 실행 작업이 I/O로 인해 대기 시간이 있는 경우.
Case 3: Often seen when we are talking about map-reduce or hadoop clusters.
사례 3: map-reduce 또는 hadoop 클러스터에 대해 이야기할 때 자주 나타납니다.
참고
https://docs.oracle.com/cd/E19455-01/806-5257/6je9h032b/index.html#mtintro-54099
- Total
- Today
- Yesterday
- ssafy후기
- 폰트
- 무료폰트추천
- 클린코드
- 깃허브계정
- 싸피6기
- 개발자도서추천
- 개발언어순위
- 싸피
- intj여자
- 폰트추천
- 개발자커리
- 브왈라
- 코딩도서
- 개발언어추천
- 맥과윈도우로깃허브
- 개발자로드맵
- 개발자책추천
- 한글무료폰트추천
- 클린코더
- 상업용무료폰트
- SSAFY
- ssafy합격후기
- 개발도서추천
- 임대차3법
- ssafy결과
- 깃허브계정2개
- 디즈니얼굴
- ssafy6기
- 개발자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |