본문 바로가기

CS/운영체제19

[Chapter 6. 프로세스 동기화] 생산자 소비자 문제로 보는 원소적 실행과 임계 구역 본 정리는 운영체제(Operating System: Concepts) 9th edition과 22학년도 1학기 건국대학교 운영체제 수업을 바탕으로 하고 있습니다. 협력적 프로세스(Cooperating Process)가 병행 또는 병렬로 실행될 때 여러 프로세스가 공유하는 데이터의 무결성에 어떤 문제가 일어나는가? * 협력적 프로세스 : 시스템 내에서 실행 주인 다른 프로세스의 실행에 영향을 주거나 받는 프로세스 생산자 소비자 스레드를 보자. #include #include void consumer (void); char buffer[n]; int n, in = 0, out = 0; int main () { char nextp; int i; pthread_t tid; pthread_create (&tid.. 2022. 9. 6.
[Chapter 5. CPU 스케줄링] 실시간 시스템과 실시간 스케줄링 (RM, EDF) 본 정리는 운영체제(Operating System: Concepts) 9th edition과 22학년도 1학기 건국대학교 운영체제 수업을 바탕으로 하고 있습니다. 실시간 시스템 (Real-Time System) 실시간 시스템에서는 작업 수행이 요청되었을 때 이를 제한된 시간(엄격한 마감시간 즉, deadline) 안에 처리하여 결과를 내주어야 한다. ex) 항공기 미사일 제어, 과학 실험, 로봇 등등 이는 연성 실시간 시스템과 경성 실시간 시스템으로 분류할 수 있다. 1. 연성 실시간 시스템 (Soft Real-Time System) 실시간 프로세스가 실시간이 아닌 프로세스들에 우선권을 가진다는 것만 보장하며, 이것이 스케줄 되는 시점에 관해서는 아무런 보장이 없다. (마감 시간(deadline)을 만족.. 2022. 9. 4.
[Chapter 5. CPU 스케줄링] 다중 처리기 스케줄링 본 정리는 운영체제(Operating System: Concepts) 9th edition과 22학년도 1학기 건국대학교 운영체제 수업을 바탕으로 하고 있습니다. 앞에까지의 스케줄링은 단일 처리기 시스템(CPU가 하나만 있는 시스템)에서의 CPU 스케줄링이었다. 현대에는 대부분 CPU가 여러 개인 다중 처리기 시스템을 사용한다. 다중 처리기 시스템에서의 스케줄링을 알아보자. 다중 처리기 스케줄링 (Multiple-Processor Scheduling) 다중 처리기에서는 부하 공유(load sharing)가 가능해진다. * 부하 공유 : 쉬고 있는 처리기에 할 일을 부여하는 것. 한 처리기는 계속 일하고 나머지는 놀고 있는 상태가 되어서는 안 된다. 하지만 이에 따라 스케줄링은 더 복잡해진다. 동일한 다중.. 2022. 8. 26.
[Chapter 5. CPU 스케줄링] 스레드 스케줄링 본 정리는 운영체제(Operating System: Concepts) 9th edition과 22학년도 1학기 건국대학교 운영체제 수업을 바탕으로 하고 있습니다. 스레드를 지원하는 운영체제에서는 프로세스를 스케줄 하는 것이 아니라, 실질적으로는 스레드를 스케줄 한다. 하지만 "프로세스 스케줄링"과 "스레드 스케줄링"의 용어는 상호 교환적으로 사용된다. 따라서 해당 책에서는 일반적인 스케줄링 개념을 설명할 경우 "프로세스 스케줄링"을 사용하고, 스레드에 국한된 개념을 가리키는 경우에는 "스레드 스케줄링"이라는 용어를 사용하고 있다. 스레드 스케줄링 앞서 스레드에는 사용자 스레드, 커널 스레드의 두가지가 있다고 알아보았다. 참고 : https://developbear.tistory.com/102 [Chapt.. 2022. 8. 25.