OS
-
2-2. System Structure & Program Execution 2OS/운영체제 강의정리 2021. 12. 30. 19:18
2-2. System Structure & Program Execution 2 컴퓨터 시스템 구조, 인터럽트(Interrupt), 동기식 입출력과 비동기식 입출력, 시스템콜(System Call), DMA(Direct Memory Access), 서로 다른 입출력 명령어, 저장장치 계층 구조, 프로그램의 실행(메모리 load), 커널 주소 공간의 내용, 사용자 프로그램이 사용하는 함수, 프로그램의 실행 동기식 입출력과 비동기식 입출력 동기식 입출력(synchronous I/O) I/O요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감 구현방법 1 I/O가 끝날때까지 CPU를 낭비시킴 매 시점 하나의 I/O만 일어날 수 있음 구현 방법 2 I/O가 완료될 때 까지 해당 프로그램에게서 CP..
-
2-1. System Structure & Program Execution 1OS/운영체제 강의정리 2021. 12. 30. 18:55
2-1. System Structure & Program Execution 1 컴퓨터 시스템 구조, Mode bit, Timer, Device Controller, 입출력(I/O)의 수행, 동기식 입출력과 비동기식 입출력, 시스템콜(System Call), 인터럽트(Interrupt) 컴퓨터 시스템 구조 register : CPU안에 메모리 보다 더 빠르면서 정보를 저장할 수 있는 더 작은 공간 mode bit : 사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호장치 필요 (CPU에서 실행되고있는것이 운영체제인지, 사용자 프로그램인지 구분해주는것) 1 사용자 모드 : 사용자 프로그램 수행 0 모니터 모드 (커널모드, 시스템 모드) : OS코드 수행 (보안을..
-
1. Introduction to Operating SystemsOS/운영체제 강의정리 2021. 12. 30. 15:49
1. Introduction to Operating Systems 운영체제란 무엇인가, 운영체제의 목적, 운영체제의 분류, 운영체제의 예, 운영체제의 구조 운영체제란? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 협의 : 운영체제의 핵심 부분으로 메모리에 상주하는 부분 (커널) 광의 : 커널 뿐만 아니라 각종 주변 시스템 유틸리티를 포함한 개념 (메모리에 상주하지않는 별도의 프로그램이다!) 목적 1. 컴퓨터시스템의 자원을 효율적으로 관리 (하드웨어를 효율적으로 관리하는것) 자원은 프로세서, 기억장치, 입출력 장치 즉 리소스를 효율적으로 관리 하는 것을 의미함. 주어진 자원으로 최대한의 성능을 내도록 (효율성) 사용자간의 형평성 있는 자원 분배 ..
-
KOCW 운영체제_이화여대_반효경 교수님 강의OS/운영체제 강의정리 2021. 12. 30. 15:01
운영체제 강의 정리 시작 운영체제 강의로 유명한 이화여대 반효경 교수님 강의! 목차 1. Introduction to Operating Systems 운영체제란 무엇인가, 운영체제의 목적, 운영체제의 분류, 운영체제의 예, 운영체제의 구조 2. System Structure & Program Execution 1 컴퓨터 시스템 구조, Mode bit, Timer, Device Controller, 입출력(I/O)의 수행, 동기식 입출력과 비동기식 입출력, 시스템콜(System Call), 인터럽트(Interrupt) 2-2. System Structure & Program Execution 2 컴퓨터 시스템 구조, 인터럽트(Interrupt), 동기식 입출력과 비동기식 입출력, 시스템콜(System Ca..
-
Project1 : Thread - Priority Scheduling(3)OS/Pintos 2021. 12. 30. 11:19
Priority inversion Problem 개요 과제 목표 Priority donation 구현 Multiple donation 구현 Nested donation 구현 개념 1. Priority donation : 우선순위가 높은 쓰레드가 우선순위가 낮은 쓰레드를 기다리는 현상 해결방법 수정 함수 void lock_acquire (struct lock *lock) lock을 점유하고 있는 스레드와 요청 하는 스레드의 우선순위를 비교하여 Priority donation을 수행하도록 수정 lock_release(struct lock *lock) donation list에서 스레드를 제거하고, 우선순위를 다시 계산하도록 remove_with_lock(), refresh_priority() 함수를 호출 v..
-
Project1 : Thread - Priority Scheduling(2)OS/Pintos 2021. 12. 30. 11:14
Priority Scheduling and Synchronization 동기화 기본 연산 스케쥴링 방식 수정 여러 스레드가 semaphore, lock, condition variable을 얻기 위해 기다릴 경우 우선순위가 가장 높은 CPU를 점유하도록 구현 현재 Pintos는 semaphore를 대기 하고 있는 스레드들의 List인 waiters가 FIFO로 구현되어있다. ready_list : 실행되기를 기다리기위한 thread들 waiters : sema-down에서 sema →value==0 즉, 사용불가 상태, 다른 사람이 쓰고있는데 waiter에서 blocked된 상태로 자고 있음 다시 sema-up 하면 깬다 Semaphore Priority Scheduling을 적용하기 위해서는 공유 자원..
-
Project1 : Thread - Priority Scheduling (1)OS/Pintos 2021. 12. 30. 11:07
개념 Priority Scheduling (우선순위 스케쥴링) : 우선순위가 제일 높은 CPU에게 주겠다 ✅ 스레드가 현재 실행 중인 쓰레드보다 우선순위가 높은 준비 목록에 추가되면 현재 스레드는 즉시 프로세서를 새 스레드에 넘겨야 한다. ✅ 마찬가지로 스레드가 lock, semaphore 또는 condition 변수를 기다릴 때 가장 높은 우선순위를 가진 기다리던 스레드가 먼저 활성화되어야 한다. 스레드는 언제든지 자신의 우선순위를 올리거나 낮출 수 있지만, 더 이상 높은 우선순위를 갖지 않도록 우선 순위를 낮추면 CPU를 즉시 양보한다. 스레드의 우선순위 범위는 PRI_MIN(0)부터 PRI_MAX(63)까지이다. 낮은 숫자는 낮은 우선순위! 숫자가 높을수록 우선순위가 높은것! 초기 스레드의 우선순위..
-
Project1 : Thread - introductionOS/Pintos 2021. 12. 30. 11:03
Threads - Introduction 프로그램 프로그램과 프로세스의 차이 프로그램 : 생명이없음. 보조기억장치(하드디스크, SSD)에 존재하며 실행되기를 기다리는 명령어(코드)와 정적인 데이터 묶음 프로세스 : 프로그램의 명령어와 정적데이터가 메모리에 적재되어 생명이 생김! 즉, 실행중인 프로그램 프로세스의 구성 PCB(Process Control Block) 안에 프로세스에대한 정보를 담고 있음 PID : 운영체제가 각 프로세스를 식별하기위해 부여된 프로세스 식별번호(Process IDentification) 프로세스 상태 : CPU는 프로세스를 빠르게 교체하면서 실행하기에 실행중인 프로세스도 있고, 대기중인 프로세스도 있음. 이러한 상태를 저장함 프로그램 카운터 : CPU가 다음으로 실행할 명령어..