본문 바로가기
반응형

반도체 그 다음 학문/운영체제 (OS)37

운영체제 CPU Scheduling Algorithms (FCFS, RR, SJF, Priority Scheduling, 실제 burst time, Convoy effect ) CPU Scheduling Algorithms Scheduling 알고리즘을 4가지 정도 알아보자. 이때 성능 평가 지표는 평균 waiting time으로 보겠다. CPU Scheduling에 대해서 잘 모르겠다면 앞선 글을 참고하면 좋다. 2022.04.13 - [내가 하는 전자공학/운영체제 (OS)] - 운영체제 CPU Scheduling ( CPU 성능 평가 지표, Preemptive, Dispatcher, non-Preemptive, cpu burst ) 운영체제 CPU Scheduling ( CPU 성능 평가 지표, Preemptive, Dispatcher, non-Preemptive, cpu burst ) CPU Scheduling - cpu는 운영체제에 의해 계속 동작을 수행한다. 이렇게 계.. 2022. 4. 13.
운영체제 CPU Scheduling ( CPU 성능 평가 지표, Preemptive, Dispatcher, non-Preemptive, cpu burst ) CPU Scheduling - cpu는 운영체제에 의해 계속 동작을 수행한다. 이렇게 계속 동작하게 하기 위해 scheduling을 통해 cpu가 멈추지 않고 동작하게 하는 것이다. 이런 동작의 단위를 burst라고 한다. 컴퓨터는 cpu burst와 i/o burst의 동작의 반복이다. 다시 말해, CPU scheduling이란 cpu의 동작을 최고 효율로 사용하기 위한 동작이다. 다른 말로는 process scheduling, kernel thread scheduling이라고 부른다. kernel thread인 이유는 user level에서는 동작을 확인인 할 수 없기 때문이다. 아래 그래프는 burst의 특징을 나타낸 그래프다. 짧은 burst가 많은 비중을 차지하는 걸 볼 수 있다. 긴 burst.. 2022. 4. 13.
운영체제 Thread Libraries, Threading issues ( Pthread, Implicit Threading, Tread pools, openMP, fork-join ) Thread Libraries - Thread Libraries는 프로그래머에게 thread를 관리하고 생성하는 API를 제공해주는 것이다. 구현에는 2가지 방식이 있다. 1. user space에서의 구현 2. kernel level에서의 구현 user space에서 구현을 하게 되면 시스템 콜의 형태가 아닌 user space에서 지역 함수를 호출하게 된다는 특징이 있다 kernel level에서 구현한다면 시스템 콜을 호출하는 것과 똑같이 된다. Pthread - A POSIX가 재정한 API의 생성과 동기화의 표준화이다. 표준화이지 어떤 구현에 관한 것은 아니다. 가령 10개의 threads를 join 하는 코드는 아래와 같다. #define NUM_THREADS 10 pthread_t worke.. 2022. 4. 13.
운영체제 Process의 동작, 통신 ( Interprocess Communication (IPC), Shared memory, Message passing, 동기화 ) Process - 프로세스들을 Scheduling queues라는 곳에 보관하는데 queue의 종류는 크게 3가지로 나눌 수 있다. 1. Ready queue : 메인 메모리에 존재하지만 아직 실행 단계는 아닌 애들을 담아두는 곳이다. 2. Wait queue : 외부에 이벤트를 기다리는 프로세스들이 존재하는 곳이다. 3. Device queue : 디바이스마다 가지고 있는 queue로 특정 디바이스들의 이벤트를 기다리는 곳이다. 만약 프로세스1이 동작을 하다가 프로세스2가 동작하기 위해 cpu를 넘겨줘야 하는 상황이라면, 운영체제는 프로세스 1의 PCB 정보를 메모리에 저장하고 프로세스 2의 PCB정보를 CPU에게 넘겨서 다시 실행하게 된다. 프로세스는 또 다른 프로세스를 만들기도 한다. 즉 부모 프로.. 2022. 4. 13.
운영체제 Amdahl's law ( 암달 법칙 ) Amdahl's law (암달 법칙) - 멀티 코어에서 실제 프로그램이 어느 정도 빨라질까? HW에서 특정 부분을 향상했을 때 (core를 늘렸을 때), 프로그램이 얼마나 더 빨리 동작할까를 예측하는 법칙이다. S는 serial portion이다. 즉, 해당 부분의 하나의 전체 실행 프로그램이다 N은 내가 추가하려는 core의 개수다. 조금 다르게 말해서 내가 S에 해당하는 부분을 N배만큼 좋게 했을 때, 성능을 비교하는 것이다. 예를 들어 75%가 parallel, 25%가 serial로 동작하는 프로그램인데 원래 core가 1개였다가 2개로 늘어났다면 얼마나 시간이 빨리 질까? 했을 땐 1.6배가 향상된다. 왜냐면 serial에 해당하는 부분인 25%을 2배로 늘렸을 때를 생각하는 것이다. 즉 S =.. 2022. 4. 13.