TIL (Today I Learned)87 [CS] Kaist PintOS User Programs, 프로그램 구조 설명 #3 이 문서는 카이스트 핀토스 원유집 교수님의 강의를 참고하여 작성하였습니다. 이 문서는 카이스트 핀토스 프로젝트 가이드라인을 정리한 글입니다. Part 2 : User Program 1. 핀토스(다른 운영체제가 그러하듯)는 프로세스 실행을 위해 인수를 얻고 함수를 호출한다. run_task(char ** argv) 함수는 process_excute(argv)를 호출한다 2. 프로세스가 실행되면 어떠한 기능을 가진 스레드를 생성한다. process_excute(const char *file_name) 함수는 thread_create(.. start_process...)를 호출한다. 3. 여기서 주목할 점은 처음 호출되는 run_task(char **argv)에서 프로세스 실행 함수를 인자로 받는 proces.. 2022. 12. 23. [CS] Kaist PintOS THREAD, Priority Scheduling #2 이 문서는 카이스트 핀토스 원유집 교수님의 강의를 참고하여 작성하였습니다. 이 문서는 카이스트 핀토스 프로젝트 가이드라인을 정리한 글입니다. Part 1 : Threads 다음 세 가지를 구현한다. 1. Alarm clock 2. Priority scheduling 3. Advanced scheduler #2 Priority scheduling 이번 과제에서는 다음 3가지는 구현해야 한다. 1. 스레드 우선순위에 다른 ready_list 정렬 2. 동기화 요소에 따른 wait_list 정렬(semaphore, condition variable) 3. preemption 구현 PintOS의 우선순위 수준은 0(PRI_MIN)에서 63(PRI_MAX)으로 64 계층으로 이루어져 있다. 숫자가 높을수록 우선순.. 2022. 12. 19. [CS] Kaist PintOS THREAD, Alarm clock #1 이 문서는 카이스트 핀토스 원유집 교수님의 강의를 참고하여 작성하였습니다. 이 문서는 카이스트 핀토스 프로젝트 가이드라인을 정리한 글입니다. Part 1 : Threads 다음 세 가지를 구현한다. 1. Alarm clock 2. Priority scheduling 3. Advanced scheduler #1 Alarm clock timer_sleep void timer_sleep (int64_t ticks) { int64_t start = timer_ticks (); while (timer_elapsed (start) < ticks) thread_yield (); } start변수에 현재 시간을 저장한다. timer_elapsed(time) : 들어온 인자로부터 얼마의 시간이 지났는지 반환한다. 이후 .. 2022. 12. 17. [CS] 쉽게 배우는 운영체제 Chapter03 #1 이 문서는 유튜브 '널널한 개발자 TV'님의 강의를 토대로 작성되었습니다. 프로세스 스케줄링에서 부족한 학습을 위해서 키워드를 추가 학습하여 정리했다. Context Switching 프로세스 큐에서 구별해야 할 3가지의 상태가 있다. 1. Ready-Queue : 자원을 사용하기위해 대기열에서 기다리는 상태 2. Sleep(ms) : 자발적으로 ms 시간만큼 대기열(ready-queue)에서 이탈하고 Queue에 합류. 3. Suspend : 타의적으로 대기열(ready-queue)에서 이탈됨 - swap 시점 - 오류로 인해서 프로세스가 죽었을 때 - 등등 의 이유로 suspend상태가 된다. 프로세스가 중단된 이후 다시 흐름을 이어가기 위해서 필요한 것이 '문맥'이다. 문맥이 바뀌는 것을 Conte.. 2022. 12. 17. [CS] Process Synchronization and Mutual Exclusion #3 이 포스팅은 한국기술교육대학교 김덕수 교수님의 운영체제 강의를 참고하여 작성되었습니다. Mutual Exclusion Solutions SW solutions • Dekker’s algorithm (Peterson’s algorithm) • Dijkstra’s algorithm, Knuth’s algorithm, Eisenberg and McGuire’s algorithm, Lamport’s algorithm HW solution • TestAndSet (TAS) instruction OS supported SW solution • Spinlock • Semaphore • Eventcount/sequencer Language-Level solution • Monitor 소프트웨어 솔루션이 있었기 때문에 .. 2022. 12. 16. [CS] Process Synchronization and Mutual Exclusion #2 이 포스팅은 한국기술교육대학교 김덕수 교수님의 운영체제 강의를 참고하여 작성되었습니다. Mutual Exclusion Solutions SW solutions • Dekker’s algorithm (Peterson’s algorithm) • Dijkstra’s algorithm, Knuth’s algorithm, Eisenberg and McGuire’s algorithm, Lamport’s algorithm HW solution • TestAndSet (TAS) instruction OS supported SW solution • Spinlock • Semaphore • Eventcount/sequencer Language-Level solution • Monitor Synchronization Har.. 2022. 12. 16. [CS] Process Synchronization and Mutual Exclusion #1 이 포스팅은 한국기술교육대학교 김덕수 교수님의 운영체제 강의를 참고하여 작성되었습니다. Mutual Exclusion Solutions SW solutions • Dekker’s algorithm (Peterson’s algorithm) • Dijkstra’s algorithm, Knuth’s algorithm, Eisenberg and McGuire’s algorithm, Lamport’s algorithm HW solution • TestAndSet (TAS) instruction OS supported SW solution • Spinlock • Semaphore • Eventcount/sequencer Language-Level solution • Monitor 동기화 (Synchronizatio.. 2022. 12. 16. [CS] Process Scheduler #4 이 포스팅은 한국기술교육대학교 김덕수 교수님의 운영체제 강의를 참고하여 작성되었습니다. 기본 스케줄링 알고리즘 • FCFS (First-Come-First-Service) • RR (Round-Robin) • SPN (Shortest-Process-Next) • SRTN (Shortest Remaining Time Next) • HRRN (High-Response-Ratio-Next) • MLQ (Multi-level Queue) • MFQ (Multi-level Feedback Queue) MLQ (Multi-level Queue) 작업 (or 우선순위)별 별도의 ready queue를 가짐 - 최초 배정 된 queue를 벗어나지 못함 - 각각의 queue는 자신만의 스케줄링 기법 사용 Queue 사이.. 2022. 12. 16. [CS] Process Scheduler #3 이 포스팅은 한국기술교육대학교 김덕수 교수님의 운영체제 강의를 참고하여 작성되었습니다. 기본 스케줄링 알고리즘 • FCFS (First-Come-First-Service) • RR (Round-Robin) • SPN (Shortest-Process-Next) • SRTN (Shortest Remaining Time Next) • HRRN (High-Response-Ratio-Next) • MLQ (Multi-level Queue) • MFQ (Multi-level Feedback Queue) SRN (Shortest-Process-Next) Non-preemptive scheduling 스케줄링 기준 : 실행시간 (burst time 기준), Burst time 가장 작은 프로세스를 먼저 처리 "소량 상.. 2022. 12. 16. 이전 1 2 3 4 5 6 7 8 ··· 10 다음