
CPU 스케줄링 알고리즘 CPU 스케줄러는 CPU 스케줄링 알고리즘에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU 에게 할당한다. 스케줄링 알고리즘의 목표 CPU 이용률은 높게, 주어진 시간에 많은 일을 하게, 준비 큐 에 있는 프로세스는 적게, 응답 시간은 짧게 비선점형 방식 (non-pre-emptive) 비선점형 방식은 프로세스가 스스로 CPU 소유권을 포기하는 방식, 강제로 프로세스를 중지하지 않는다. 따라서 컨텍스트스위칭으로 인한 부하가 적다. FCFS (First Come, First Served) 가장 먼저 온 것을 가장 먼저 처리하는 알고리즘. 길게 수행되는 프로세스 때문에 '준비 큐에서 오래 기다리는 현상 (convoy effect)' 이 발생할수 있다. SJF (Shortes..

공유 자원 (shared resource) 공유 자원은 시스템 안에서 각 프로세스, 스레드가 함께 접근할수 있는 모니터,메모리,파일,데이터 등의 자원이나 변수를 의미. 이 공유자원을 두 개 이상의 프로세스가 동시에 읽거나 쓰는 상황을 경쟁 상태(race condition) 이라고 한다. 동시에 접근을 시도할때 접근의 타이밍, 순서 등이 결과값에 영향을 줄 수 있는 상태. 따라서 프로세스들의 공유 자원 접근 순서를 정해야 한다. 임계 영역 (critical section) 공유 자원에 접근할 때 순서 등의 이유로 결과가 달라지는 영역을 임계 영역이라고 한다. 임계 영역 해결 조건 상호 배제 (Mutual Exclusion) 한 프로세스가 임계구역에 들어가면 다른 프로세스는 임계구역에 들어 갈 수 없다. 한..

스레드 스레드는 프로세스의 실행 가능한 가장 작은 단위. 프로세스는 여러 스레드를 가질 수 있다. 코드,데이터,스택,힙을 각각 생성하는 프로세스와 달리 스레드는 코드,데이터,힙은 스레드끼리 공유한다. 그 외의 영역은 각자 생성된다. 스택은 지역변수,리턴할 주소가 저장되는 영역이다. 스택도 스레드끼리 공유한다면 지역변수도 공유하게되고 리턴할 주소가 혼동된다. 멀티스레딩 하나의 프로세스를 다수의 실행단위 (스레드)로 구분하여 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행 능력을 향상시키는 것. 스레드 끼리 서로 자원을 공유하기 때문에 효율성이 높다. 장점 프로세스를 이용해 동시에 처리하던 일을 스레드로 구현할 경우 메모리 공간과 시스템 자원 소모가 줄어든다. 스레드 간의 통신이 필요한 경우에..

프로세스 (Process) 프로세스는 컴퓨터에서 실행되고 있는 프로그램을 말하며 cpu 스케줄링의 대상이 되는 작업이라는 용어와 거의 같은 의미로 쓰인다. 프로세스는 프로그램으로부터 인스턴스화 된 것을 말한다. 예를들어 프로그램은 구글 크롬 프로그램과 같은 실행 파일이며, 이를 두 번 클릭하면 구글 크롬 프로세스가 시작된다. 프로세스의 상태 생성 상태 프로세스가 생성된 상태를 의미하며 fork() 또는 exec() 함수를 통해 생성. 이때 PCB (Process Control Block) 가 생성된다. PCB란 하나의 프로세스가 시스템에 존재할 때의 모습. 대기 상태 (준비 상태) 대기 상태는 메모리 공간이 충분하면 메모리를 할당받고 아니면 아닌 상태로 대기한다. CPU 스케줄러로부터 CPU 소유권이 넘..
- Total
- Today
- Yesterday
- Dijkstra
- Python
- graph
- priority queue
- back tracking
- DP
- BFS
- CSS
- greedy
- binary search
- floyd warshall
- Stack
- Kruskal
- permutation
- C
- Brute Force
- Implementation
- db
- Tree
- 조합
- C++
- 재귀
- MVC
- Spring
- 이분탐색
- Unity
- recursion
- 자료구조
- dfs
- two pointer
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |