일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 유니크 키
- DP
- 큐
- 논리 메모리
- 객체지향 프로그래밍
- 코딩 테스트
- 데드락
- BFS
- 자료구조
- error
- queue
- 운영체제
- 다익스트라
- 백준 #
- 캡슐화
- Python
- SW Expert Academy
- 프로세스
- stack
- 백준
- DFS
- 스택
- unionfind
- 파이썬
- integretion test
- java
- OS
- springboot
- 디바이스 입출력
- OOP
- Today
- Total
목록프로세스 (4)
middlefitting
프로그램과 프로세스 프로그램과 프로세스, 같은 말처럼 들릴 수 있지만 둘은 엄연히 차이가 있습니다. 둘의 차이는 그 둘의 정의를 통해 알 수 있습니다. 프로그램 디스크 상에 존재하는 실행을 위한 명령어와 정적 데이터의 묶음 프로세스 실행중인 프로그램 운영체제의 관점에서 프로그램은 생명이 없는 정적 데이터일 뿐입니다. 운영체제가 프로그램을 실행시키면서 생명을 불어넣게 되고 프로세스가 되는 것입니다. 프로그램의 실행 1. 메모리 탑재 그렇다면 어떻게 프로그램은 실행될 수 있는 걸까요. 쉽게 생각하면 하드웨어 공간을 통해 이를 알 수 있습니다. 프로그램이 존재하는 공간은 SSD, HDD와 같이 흔히 '하드' 라 불리는 영구기억장치에 존재합니다. 운영체제의 작업 공간은 Ram 이라 불리는 휘발성 메모리 영역에 ..
프로세스 동기화 문제란 프로세스 동기화 문제란 공유 데이터의 동시 접근이 발생하는 경우에는 데이터의 불일치 문제를 발생시킬 수 있는 것을 말합니다. 일관성 유지를 위해서는 협력 프로세스 간의 실행 순서를 정해주는 메커니즘이 필요하게 됩니다. 동기화 문제의 예시를 들어 보겠습니다. 1. 특정 공유데이터 x = 1 가 있다고 가정합니다. 2. 해당 공유데이터는 프로세스 A, B가 공유합니다. 2; 먼저 한 프로세스 A가 해당 공유데이터를 읽어들이면 x = 1 을 읽어오게 됩니다. 3. 그리고 그 상태에서 interrupt가 발생하여 CPU를 다른 프로세스 B가 점유하게 되었습니다. 4. 그리고 프로세스 B가 공유 데이터에 x += 1 명령을 수행해서 x = 2 가 되었습니다. 5. 그리고 다시 프로세스 A가..
프로세스 생성 프로세는 부모 프로세스로부터 생성되게 됩니다. 프로 프로세스가 fork 시스템 콜을 호출하면 해당 부모 상태를 복제한 자식 프로세스가 생겨나게 됩니다. 자식 프로세스는 부모 프로세스의 주소 공간을 복사하고, PCB와 같은 자원들도 복제하게 됩니다. 자식 프로세스는 exec 시스템 콜을 통해 새로운 프로그램을 메모리에 올릴 수 있습니다. 따라서 프로세스의 생성 단계는 다음과 같이 이루어집니다. fork() -> 부모 프로세스의 복제 -> exec() -> 새로운 프로그램 덮어쓰기 COW 파일 시스템으로 많이 나오는 개념으로, 자식 프로세스가 부모 프로세스와 자원을 공유하다가. write가 발생하면 내용이 바뀌므로 그때 메모리 공간을 복사한다는 개념입니다. copy 또한 필요한 부분만 올라가게..
프로세스의 개념 프로세스는 실행중인 프로그램을 말합니다. 프로세스가 어떤 의미로 사용되었는지 알기 위해서는 문맥을 알아야 하는데, 문맥을 기준으로 프로세스가 어떻게 진행했는지, 시점이 어떤지 알 수 있기 때문입니다. 프로세스의 문맥은 다음과 같이 존재합니다. CPU 수행 상태를 나타내는 하드웨어 문맥 Program Counte, Register 프로세스의 주소 공간 Code, data, stack 프로세스 관련 커널 자료 구조 PCB, Kernel stack 프로세스의 상태 프로세스는 상태가 변경되며 수행됩니다. 상태가 변경되는 가장 큰 요인은 한 프로세스가 CPU를 계속 점유하지 않고 서로 돌아가면서 쓰기 때문이며, 상태의 종류는 다음과 같습니다. New 프로세스가 생성중인 상태를 말합니다. Ready..