Computer Science/OS
-
[운영체제] 12. Secondary-Storage Systems (Disk Scheduling)Computer Science/OS 2022. 12. 3. 05:04
Disk Scheduling 다양한 트랙에 대한 접근 요구 시, 적절한 디스크 스케줄링 알고리즘 사용하여 액세스의 선후를 결정. Seek time (탐색 시간) Rotational latency (지연 시간) Minimize seek time (최소 탐색 시간이 좋은 디스크 스케줄링 기법) Seek time ≒ seek distance (탐색 시간은 트랙 간의 거리에 비례) FCFS (순서대로) SSTF (shortest seek time first) 현재 디스크 헤더로부터 가장 가까운 것부터 처리 SCAN (elevator algorithm) 한 방향으로 움직이면서 그 사이 모든 서비스를 처리 C-SCAN 한쪽 방향으로만 서비스, 반대 방향 헤드 이동시 서비스하지 않는다. C-LOOK C-SCAN과 비..
-
[운영체제] 9. Virtual-Memory Management 가상 메모리 관리Computer Science/OS 2022. 12. 3. 04:56
목적 ) 1. 가상 메모리 정의, 장점 2. 요구 페이징 기법에 의한 메모리 적재 3. FIFO, 최적, Least Recently Used 교체 기법, 4. 워킹 셋, 프로그램 지역성에 대한 설명 가상 메모리 기본 개념 지금까지의 메모리 관리 기법 실행하는 코드와 데이터는 반드시 물리적 메모리에 적재되어야 한다. 프로세스 크기가 물리적 메모리의 크기로 제한됨 메모리에 모든 내용이 있어야 하는가? -> 프로그램의 모든 부분이 동시에 요구되지는 않다. (순차적 실행) -> 오류 상황을 위한 코드, 잘 사용되지 않는 기능에 대한 코드, 필요 이상으로 할당된 큰 용량의 배열 Background 프로그램 일부만 적재 후 실행하면? 다양한 크기의 프로그램을 자유롭게 실행 가능 프로그램 일부만 적재하여 실행 (필요..
-
[운영체제] 8. Meomory-Management Strategies 메모리 관리 기법Computer Science/OS 2022. 12. 2. 03:44
Background 프로세스와 메모리와의 관계 프로그램이 실행되기 위해서 메인 메모리에 적재되어야 함. CPU가 직접 접근할 수 있는 저장소는 메모리와 레지스터 레지스터는 1 CPU clock에 접근 가능 (속도 빠름) 메모리 접근에는 여러 clock cycle 필요 (속도 느림) 메모리와 CPU 레지스터 중간에 캐시 메모리 존재 정확한 실행 보장하기 위해 메모리 보호 필요하다. 주기억 장치 관리 정책 분야 반입 정책 : 하드 디스크에 어떤 모듈을 메인 메모리에 적재할 것인가를 결정 요구 반입(demand loading) vs 예상 반입 (X, 예측 어려움) 배치 정책 (placement policy) : 반입한 모듈을 메인 메모리 어디에 저장할 것인가? 최초 적합, 최적 적합 등 교체 정책 (repla..
-
[운영체제] 7.Deadlocks 교착상태Computer Science/OS 2022. 11. 12. 03:47
목적) 교착 상태 정의, 교착 상태 예방 및 회피 방법 The Deadlocks Problem 교착상태(Deadlock)이란? 교착상태란 어떤 다른 프로세스에 의해서 발생된 이벤트에 의해서 모든 프로세스가 대기하는 현상 요청한 자원을 다른 대기 중인 점유하고 있기 때문에 자원을 요청한 대기 중인 스레드(또는 프로세스)는 다시는 스레드 상태를 변경할 수 없다. 봉쇄된 프로세스들의 집합 각 프로세스가 자원을 가진 상태에서 다른 자원을 요구하는 상황 요구하는 자원이 다른 프로세스에 의해 점유된 상태 (서로 진행되지 못함) System Model for a deadlock (교착 상태의 시스템 모델) 자원의 종류는 여러 인스턴스 인스턴스로 구성된다. CPU cycles, memory space, I/O devi..
-
[운영체제] 6. Process Synchronization 프로세스 동기화Computer Science/OS 2022. 11. 11. 03:13
프로세스 동기화의 배경 - Background 프로세스 병행 처리에 의해 언제든지 인터럽트(문맥 교환) 발생 가능. 병행 프로세스의 공유 변수 갱신 불일치 발생 - 일관성 X 공유 변수 동시 접근 시, 변수 갱신 불일치 발생 가능 생산자-소비자 문제 (데이터 불일치 발생 사례) 생산자는 유한한 길이를 가진 버퍼에 데이터를 생산하여 저장하고, 소비자는 버퍼에 데이터를 소비합니다. count : 버퍼에 저장된 데이터의 수 buffer : 데이터 저장 배열 생산자와 소비자 프로세스가 동시에 비동기적으로 공유 자원(buffer)에 접근할 때 데이터 불일치가 발생 // 생산자 while (true){ // next_produced 위치에 아이템을 생산합니다. // 버퍼에 아이템이 가득찼다면 생산자는 대기 whil..
-
[운영체제] 5. Process Scheduling 프로세스 스케줄링Computer Science/OS 2022. 10. 8. 02:53
기본 개념 (Basic Concept) 멀티 프로그램의 목적은 CPU의 이용도를 최대화시키는 것. (CPU 스케쥴링을 이용) 일반적인 프로세스는 IO와 CPU 사용을 번갈아 연산 (사이클 형태) * CPU 스케쥴링 : CPU가 다음에 수행할 프로세스의 실행 순서를 정하는 것 * CPU-burst time : IO 없이 집중적으로 CPU 계산하는 시간 Alternating Sequence of CPU And I/O Bursts CPU Scheduler 메인메모리의 실행 준비가 완료된 프로세스 중 하나 선택해서 CPU 할당. CPU 스케쥴링이 발생하는 경우 (CPU 사용을 다른 프로세스에 양도할 경우 발생) 프로세스 상태 running에서 waiting로 변할 때 running -> ready (timing..
-
[운영체제] 4. Multithreaded Programming 멀티 스레드 프로그래밍Computer Science/OS 2022. 9. 28. 01:22
스레드(Tread)란? 스레드 개념 CPU 이용의 기본 단위 경량(lightweight) 프로세스 프로세스 내부의 코드 실행 흐름 스레드는 한 프로세스 안에서 동시에 여러 작업들을 수행할 수 있게 해주는 프로세스 안의 작은 프로세스이다. 프로세스 생성보다 스레드 생성이 용이하다. (주소 공간을 공유하기 때문) 모듈 별로 한 기능만 실행 = 한 스레드에 할당 -> 효율성 향상 최근의 응용프로그램들은 멀티 스레드로 구성된다. 싱글 스레드 프로세스는 실행흐름이 1개, 멀티 쓰레드 프로세스는 여러개의 실행 흐름을 가진다. 각각의 쓰레드 들은 쓰레드 ID, 프로그램 카운터(Program Counter, PC), 레지스터 집합(Register Set), 스택(Stack)으로 구성 스레드는 같은 프로세스에 속한 다른..
-
[운영체제] 3. Process Concept 프로세스 개념Computer Science/OS 2022. 9. 23. 02:54
목적 프로세스 개념 소개 프로세스 스케줄링, 생성, 종료, 통신 클라이언트와 서버 간의 통신 프로세스 개념 (Process Concept) OS는 다양한 종류 프로그램 실행. 배치 시스템(batch system) - jobs(process) 시분할 시스템(Time-shared system) - tasks 프로세스(Process)란? 실행 중인 프로그램 운영체제의 작업 단위 프로세스는 다음과 같은 메모리 공간 할당 text section - 실행가능한 프로그램 코드가 저장되는 공간 Data section - 전역변수가 저장되는 공간 Heap - 동적으로 할당되는 객체(변수) 저장되는 공간 프로그램 카운터 (Program counter) - 다음번 주소 값 저장되는 PC를 프로세스를 가짐 스택 (Stack)..