Fascination
article thumbnail
[OS] Chapter 04. CPU 스케줄링

Chapter 04. CPU 스케줄링 누워서 보는 운영체제 이야기 - 김주균 교수님 현재 실행 중인 프로세스로부터 다른 프로세스로 CPU를 넘겨줘야 할 때, 기다리고 있는 여러 프로세스 중에 누구를 선택해야 할지에 대한 방식이나 기준이 있어야 하는데 이때 필요한 것이 스케줄링 기법임 여러 프로세스들이 번갈아 사용해야 하는 자원이 있을 경우, 주어진 시점에서 어떤 프로세스가 이 자원을 사용할 것인가를 결정하는 것을 스케줄링(Scheduling)이라 하며 그 자원이 CPU일 경우 CPU 스케줄링이 되는 것 # 4.1 스케줄링(Scheduling)의 단계 ▶ 스케줄링 시점을 기준으로 구분 장기(Long-term), 중기(Medium-term), 단기(Short-term) 스케줄링의 세 가지로 나눔 ▶ 장기 스..

article thumbnail
[C++] BOJ 11279 : 최대힙
CODE/BOJ 2021. 9. 16. 11:05

[문제] 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net [문제 풀이] - 우선 순위 큐를 사용 - 입력 받은 수가 0일 때, 큐가 비어 있으면 0을 출력하고 아니라면 가장 위에 있는 수를 출력 [코드] #include #include using namespace std; int n; // 입력받을 정수의 개수 priority_queue pq; int main() { cin.sync_with_stdio(0); // 시간 초과 해결 cin.tie(0); cin >> n; for (int i=0..

article thumbnail
[C++] BOJ 1158 : 요세푸스 문제
CODE/BOJ 2021. 9. 16. 10:54

[문제] 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net [문제 풀이] - 인덱스에 해당되지 않는 사람은 다시 순환큐의 성질을 이용해서 맨 뒤에 삽입하여 재검사 할 수 있도록 함 [코드] #include #include using namespace std; int main(){ int n,k; scanf("%d %d",&n,&k); queue q; for(int i=0;i

article thumbnail
[DS] Queue(큐) & Circular Queue(순환 큐)
Study/Data Structure 2021. 8. 31. 19:05

# 큐 - 큐: 처리를 기다리고 있는 작업(원소)들의 리스트 - 선입 선출(FIFO, First-In, First-Out) 방식 / FCFS (First-Come, First-Served) - 우선순위를 부여하지 않음 - 새로운 원소는 큐의 맨 뒤(rear)에 삽입되고 큐의 맨 앞(front) 원소가 먼저 삭제됨 - insert된 순서대로 처리됨 - 스택과 달리 큐의 맨 앞 원소와 맨 뒤 원소를 가리키기 위한 두 개의 front와 rear 포인터가 필요 Q = [a0, a1, ..., an-1] # 큐의 구현 - front: delete할 때 사용 - rear: stack에서의 top과 같은 역할을하며 add할 때 사용 - front와 rear 포인터의 초기 값 = -1 ← 일반적으로 이렇게 설정 - 새..