본문 바로가기

TIL (Today I Learned)/컴퓨터 시스템(CS)41

[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.
[CS] Process Scheduler #2 이 포스팅은 한국기술교육대학교 김덕수 교수님의 운영체제 강의를 참고하여 작성되었습니다. 기본 스케줄링 알고리즘 • 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) FCFS (First-Come-First-Service) 선착순 알고리즘 Non-preemptive scheduling 스케줄링 기준 : 도착 시간 (선착순) 자원을 효율적으로 사용 가능. Why? schedulin.. 2022. 12. 16.
[CS] Process Scheduler #1 이 포스팅은 한국기술교육대학교 김덕수 교수님의 운영체제 강의를 참고하여 작성되었습니다. 다중프로그래밍 (Multi-programming) 여러개의 프로세스가 시스템 내 존재 자원을 할당 할 프로세스를 선택 해야함 - 스케줄링 자원 관리 - 시간 분할 (time sharing) 관리 하나의 자원을 여러 스레드들이 번갈아 가며 사용 예) 프로세서 (Processor) 프로세스 스케줄링 (Process scheduling) > 프로세서 사용시간을 프로세스들에게 분배 - 공간 분할 (space sharing) 관리 하나의 자원을 분할하여 동시에 사용 예) 메모리 (memory) 스케줄링(Scheduling)의 목적 시스템의 성능(performance) 향상 대표적 시스템 성능 지표 (index) - 응답시간 (.. 2022. 12. 16.
[CS] 스레드 관리 이 포스팅은 한국기술교육대학교 김덕수 교수님의 운영체제 강의를 참고하여 작성되었습니다. 프로세스는 자원을 할당받고, 제어를 한다. 제어 부분을 스레드라고 한다. 스레드(Thread) Light Weight Process (LWP) 스레드는 자원은 공유하고 제어를 각각 가지고 있다. 프로세서(e.g., CPU) 활용의 기본 단위 구성요소 - Thread ID - Register set (PC, SP 등) - Stack (i.e. local data) 제어 요소 외 코드, 데이터 및 자원들은 프로세스 내 다른 스레드들과 공유 전통적 프로세스 = 단일 스레드 프로세스 스레드의 장점 사용자 응답성 (Responsiceness) - 일부 스레드의 처리가 지연되어도, 다른 스레드는 작업을 계속 처리 가능 자원 공유.. 2022. 12. 15.
[CS] Process vs Thread 이 문서는 유튜브 '널널한 개발자 TV'님의 강의를 토대로 작성되었습니다. Proces는 연산할 것에 대한 관리의 단위이다. 그 단위는 OS가 관리한다. 연산은 연속적이며, Process에는 흐름이 기본적으로 1개 있다. 한 Process내부에 흐름이 n개 있을 수 있다. 동시에 각자 작용한다. 이때의 흐름을 Thread라고 한다. 이 흐름이 여러개가 되면 Multi-threading OS는 가상 메모리 공간을 프로세스에게 할당한다. Process(작업)는 최소 1개의 Thread 존재 OS는 Virtual Memory(제한된 공간)를 Process에게 할당한다. Process에 속한 모든 Thread는 Process의 Virtual Memory로 공간 제약 된다. Multi-Threading > 동시성.. 2022. 12. 15.
[CS] 표준 입출력, File offset & File pointerIO #5 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. #1 Handling file offset #include int fseek(FILE *stream,long offset,int whence); long ftell(FILE *stream); void rewind(FILE *stream); int fsetpos(FILE *stream,const fpos_t *pos); int fgetpos(FILE *stream,fpos_t *pos); stream offset : 이동시킬 byte 수 (양수 or 음수) whence : 기준 위치 SEEK_SET, SEEK_CUR, SEEK_END pos : offset을 저장할(or 하고 있는) fpos_t 주.. 2022. 12. 14.
[CS] 표준 입출력, Standard IO #4 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. 표준 파일 입출력에는 다음 4가지가 있다. (1) Character IO (2) String IO (3) Binary IO (4) Formatted IO 이번 포스팅에서는 (3), (4)에 대해서 다루겠다. 문자인 경우 '아스키 코드' 로 변환되어 저장된다. 파이너리 파일은 메모리에 있는 이진수 데이터가 그대로 저장된다. #1 Binary IO FILE *fopen(const char *filename, const char *mode); 파일을 읽을 때 mode인자에 binary인자를 포함하여 읽으면 된다. Binary IO Read & Write, fread(3), fwrite(3) #inclu.. 2022. 12. 14.