OperatingSystem(41)
-
[운영체제][프로세스관리] CPU Scheduling #4 다중 처리기 스케줄링(Multiple-Processor Scheduling)
학습목표 1. 다중 처리기 스케줄링에 대한 2가지 접근 방법에 대해서 학습 2. 처리기 친화성에 대해서 학습 3. 부하 균등화에 대해서 학습 4. 대칭적 다중 쓰레딩에 대해서 학습 1. 다중 처리기 스케줄링 대한 접근 방법(Approaches to Multiple-Processor Scheduling) 다중 처리기 시스템의 CPU 스케줄링하는 2가지 방법이 존재합니다. 비대칭 다중 처리(asymmetric multiprocessing) 대칭 다중 처리(symmetric multiprocessing, SMP) 비대칭 다중 처리(asymmetric multiprocessing) 하나의 처리기가 모든 스케줄링 결과 입/출력 처리 그리고 다른 시스템으로의 이동을 취급하게 하는 것입니다. 다른 처리기들은 사용자 ..
2022.02.23 -
[운영체제][프로세스관리] CPU Scheduling #3 스케줄링 알고리즘(Scheduling Algorithm), Priority, RR, MLQ, MLFQ
학습목표 1. 우선순위 스케줄링에 대하여 학습 2. 라운드 로빈 스케줄링에 대하여 학습 3. 다단계 큐 스케줄링에 대하여 학습 4. 다단계 피드백 큐 스케줄리에 대하여 학습 1. 우선순위 스케줄링(Priority Scheduling) 우선순위 스케줄링 방식은 각각의 프로세스들은 우선순위를 가지고 있으며 가장 높은 우선순위를 가진 프로세스에게 CPU 권한을 할당합니다. 만약 우선순위가 같은 프로세스가 있다면 선입 선처리(FCFS) 순서로 스케줄링합니다. 이전 글에서 SJF 알고리즘은 CPU 버스트 시간이 짧을 수록 높은 우선순위를 가지는 알고리즘입니다. 일반적으로 우선순위는 0~7 또는 0~4095까지 일정 범위의 수를 사용합니다. 이중에서 0이 최상위 우선순위입니다. 다음 그림은 프로세스 5개를 우선순위..
2022.02.21 -
[운영체제][프로세스관리] CPU Scheduling #2 스케줄링 알고리즘(Scheduling Algorithm), FCFS, SJF
학습목표 1. 선입 선처리 스케줄링에 대해서 학습 2. 최단 작업 우선 스케줄링에 대해서 학습 CPU 스케줄링은 준비 완료 큐에 있는 어느 프로세스에게 CPU를 할당할 것인지를 결정하는 문제를 다룹니다. 이때 어느 프로세스를 선택할 것인지는 CPU 스케줄링 알고리즘에 따라 다릅니다. CPU 스케줄링 알고리즘들은 다음과 같은 종류가 있습니다. 선입 선처리 스케줄링(First-Come, First-Served Scheduling) 최단 작업 우선 스케줄링(Shortest-Job-First Scheduling) 우선순위 스케줄링(Priority Scheduling) 라운드 로빈 스케줄링(Round-Robin Scheduling) 다단계 큐 스케줄링(Multilevel Queue Scheduling) 다단계 피..
2022.02.21 -
[운영체제][프로세스관리] CPU Scheduling #1 CPU Scheduling의 개념 및 기준
학습목표 1. CPU 스케줄링이 무엇인지 학습 2. CPU-I/O Brust Cycle이 무엇인지 학습 3. CPU Scheduler가 무엇인지 학습 4. 선점 스케줄링이 무엇인지 학습 5. 디스패처(Dispatcher)가 무엇인지 학습 6. 스케줄링 기준에 대해서 학습 1. 기본 개념 1.1 CPU 스케줄링이란 무엇인가? 하나의 CPU는 한순간에 오직 하나의 프로세스만을 실행할 수 있습니다. 메모리 위에 올라가 있는 나머지 프로세스는 CPU가 자유 상태가 될때까지 기다려야합니다. 만약 CPU가 어떤 한 프로세스의 실행을 마치고 다른 프로세스를 실행한다면 어떤 프로세스를 선택할 것인가? CPU 스케줄링은 CPU가 다음에 수행할 프로세스의 실행 순서를 정하는 것을 의미합니다. 1.2 CPU-입/출력 버스트..
2022.02.17 -
[운영체제][프로세스관리] 쓰레드 #5 운영체제 사례
학습목표 1. Windows XP에서 쓰레드를 어떻게 구현하는지 학습 2. Linux에서 쓰레드를 어떻게 구현하는지 학습 5.1 Windows XP Thread 쓰레드의 일반적인 구성요소는 다음과 같습니다. 쓰레드 ID : 각각의 쓰레드를 유일하게 식별 레지스터 집합 : 처리기의 상태를 나타냄 사용자 스택 : 사용자 모드에서 실행할 때 저장공간 커널 스택 : 커널 모드에서 실행할 때 저장공간 쓰레드별 데이터 : 각각의 쓰레드만이 갖고 있는 저장 영역 쓰레드의 자료구조 ETHREAD : 실행 쓰레드 블록(executive thread block) KTHREAD : 커널 쓰레드 블록(kernel thread block) TEB : 쓰레드 환경 블록(thread environment block) ETHREAD..
2022.02.02 -
[운영체제][프로세스관리] 쓰레드 #4 쓰레드와 관련된 문제들(Threading Issues)
학습목표 1. 다중 쓰레드 프로그램에서 고려해야 할 쓰레드 관련 문제들이 무엇인지 학습 4. 쓰레드와 관련된 문제들(Threading Issues) 다중 쓰레드 프로그램을 사용할때 고려해야할 점들은 다음과 같습니다. 쓰레드의 fork() 및 exec() 시스템 호출 문제 쓰레드의 취소(Cancellation) 쓰레드의 신호 처리(Signal Handling) 쓰레드 풀(Thread pool) 쓰레드별 데이터(Thread-Specific Data) 스케줄러 활성화(Scheduler Activation) 4.1 쓰레드의 fork() 및 exec() 시스템 콜 호출 fork() fork() 시스템 콜을 호출하면 새로운 프로세스 공간을 별도로 생성하고, fork() 시스템 콜을 호출한 부모 프로세스 공간의 데이..
2022.02.02