728x90
걍 다름.
프로그램: 파일이 저장장치에 저장되어있지만 메모리에는 올라가 있지 않은 정적인 상태
프로세스: 프로그램을 실행하여 컴퓨터 메모리에 올라가 있는 동적인 상태 (실행되고 있는 컴퓨터 프로그램)
쓰레드는 프로세스 안에 포함된 개념임
하나의 프로세스는 하나 이상의 스레드를 가진다.
프로그램 하나가 단순히 한가지 작업만을 수행할 수 없기 때문에 등장한 개념이 스레드
프로세스 | 스레드 |
프로그램을 실행하여 컴퓨터 메모리에 올라가 있는 동적인 상태 | 스레드끼리 프로세스의 자원을 공유하면서 프로세스 실행 흐름의 일부 |
운영체제가 Code/Data/Stack/Heap 메모리 영역을 할당해주고 최소 작업 단위로 삼음. 다른 프로세스의 변수나 자료에 접근 불가 | 프로세스 내에서 Stack메모리 영역을 제외한 다른 메모리 영역을 같은 프로세스 내 다른 스레드와 공유 |
다른 프로세스와 정보를 공유하려면 IPC를 사용하는 등의 번거로운 과정을 거쳐야 함 | 기본 구조 자체가 메모리를 공유하는 구조이기 때문에 다른 스레드와 정보 공유 쉬움 |
멀티태스킹: 하나의 운영체제 안에서 여러 프로세스 실행되는 것 | 멀티스레드 - 장점: 자원 아끼기 쉬움 단점: 운영체제가 스케쥴링 처리하지 않기 때문에 프로그래머가 직접 동기화 문제에 대응할 수 있어야 함 |
728x90
'CS > 운영체제' 카테고리의 다른 글
컨텍스트 스위칭 (0) | 2023.11.20 |
---|---|
페이지 폴트(Page Fault) (2) | 2023.11.20 |
프로세스가 메모리에 올라가는 방법 (0) | 2023.10.01 |
교착상태일 때의 문제점과 해결 방법 (0) | 2023.10.01 |
가상메모리와 가상메모리의 페이징 (0) | 2023.10.01 |