운영체제 15

[운영체제] 우선순위 스케줄링

우선순위 스케줄링이란 : 프로세스에 우선순위를 부여하는 스케줄링으로서, 프로세스는 대개 우선순위가 높을 수록 작은 우선순위 번호를 가진다. 그러면 CPU는 가장 높은 우선순위를 가진 프로세스에 CPU를 할당하는 구조이다. 우선순위의 정의는 내/외부적 요인이 작용한다. 내부적 요인으로는 시간 제한, 메모리 요구, open file 수, I/O와 CPU의 비율 등이 작용할 것이고, 외부족 요소로는 프로세스의 중요성, 비용의 유형과 액수, 그리고 정치적 요인이 작용할 것이다.

Computer Science 2024.01.24

[운영체제] 가상 메모리 개념, 가상메모리와 메모리 공유

운영체제 상에서 가상메모리는 물리적 메모리에 backing store가 합쳐진 공간을 의미한다. 가상 메모리에서는 프로그램의 논리 메모리와 물리적 메모리를 분리하는데, 프로세스가 완전히 메모리에 적재되지 않아도 프로세스 실행을 허용한다. 가상 메모리에서는 물리적 메모리보다 크기가 큰 가상 메모리를 제공할 수 있는데, 프로그램의 크기가 물리적 메모리보다 클 수 있다. 또한 가상 메모리는 페이지 단위의 swap in/out을 진행하는데, 이를 통해 입출력 크기를 감소시킬 수 있다. 가상 메모리의 구현에는 요구 페이징과 요구 세그먼테이션을 이용한다. 가상메모리는 프로세스들이 메모리와 파일 공유를 가능하게 하는데, 이 과정은 공유 라이브러리와 공유 메모리를 통해 이루어진다.

Computer Science 2024.01.23

[운영체제] Allocation 방법 - 연속할당, 연결할당, 인덱스 할당 개념

파일에 대한 디스크 공간 할당 방법의 고려 사항으로는, 디스크 공간의 효율적인 이용 및 파일의 빠른 접근을 위해야 한다는 것이다. 이를 위해 3가지 주요 할당 방법을 사용한다 1) 연속 할당(contiguous allocation) 각 파일은 디스크의 연속된 블록들의 집합을 점유하는 방법이다. 최소 탐색시간과 간단하다는 점, 파일 접근이 쉽다는 점은 장점으로 작용하지만, 외부 단편화로 인한 저장공간이 낭비된다는 점, 그리고 파일 크기를 증가시킬 수 없다는 점은 분명한 단점이다. 2) 연결 할당(linked allocation) 각 파일은 디스크 블록들의 linked list로 구성되어, 블록 들이 디스크의 임의의 위치에 분산 가능하도록 하는 방법이다. 공간 낭비가 없다는 점은 장점이지만, 랜덤 접근이 불..

Computer Science 2024.01.22

[운영체제] Disk Scheduling - FCFS, SSTF, SCAN, C-SCAN, LOOK, C-LOOK 스케줄링에 대하여

디스크 스케줄링은 디스크의 I/O 요청 처리 순서를 적절한 순서로 스케줄링하여 접근시간 및 대역폭을 향상시키는 방법이다. 디스크 스케줄링의 방법으로는 FCFS, SSTF, SCAN, C-SCAN, LOOK, C-LOOK 스케줄링이 있ㄸ. 1) FCFS : 선입선처리 스케줄링 FIFO 큐를 사용하여 요청한 순서대로 처리하는 방법이다. 빠른 서비스를 제공하지 못하며, 부하가 많은 경우 특히 비효율적이다. 2) SSTF: 최소 탐색 우선 스케줄링이다. (Shortest-Seek-Time-First Scheduling) 현재 헤드 위치에서 탐색시간이 최소인 위치의 요청을 먼저 선택하는 방법이다. FCFS방법보다 효율적이지만, 일부 요청의 기아 상태가 발생할 수 있다. 3) SCAN : 엘레베이터 알고리즘 디스크..

카테고리 없음 2024.01.21

[운영체제] 스와핑(스와핑, 스와핑-입출력, 여러가지 스와핑, 모바일 시스템에서의 스와핑)

스와핑(Swapping)이란 실행을 계속할 수 없는 프로세스를 메모리에서 일시적으로 예비 저장장치로 내보내고, 실행을 계속할 수 있는 프로세스를 예비 저장장치에서 메모리로 불러오기 하여 실행을 재개할 수 있게 하는 것을 의미한다. 예비 저장장치로는 모든 프로세스의 메모리의 복제본을 저장할 수 있을 정도의 저장 용량을 가진 빠른 디스크를 사용한다. 이 때 빠른 접근을 위해 저장된 메모리 이미지에 대해 직접 접근이 가능해야 한다. 스와핑이 존재하지 않는다면, 물리적 메모리의 크기보다 모든 프로세스의 물리적 주소 공간의 합이 반드시 작아야만 한다. 그러나 스와핑을 통해 이러한 경우가 아니더라도 모든 프로세스가 동시에 실행될 수 있게 할 수 있다. 스와핑 동작은 다음과 같은 프로세스로 진행된다. 1. CPU s..

Computer Science 2024.01.18

[운영체제] 세마포 개념, 용도, 세마포 구현 원리

세마포(Semaphore)는 Mutex Lock보다 더 정교하고 강력한 프로세스 동기화 도구이다. (* 동기화: 시스템을 동시에 작동시키기 위하여 여러 사건들을 조화시키는 것) 세마포 S는 특별한 표준 동기화 연산을 통해서만 접근 할 수 있는 정수 변수로서, 세마포 값은 대개 사용 가능한 특정 자원의 수를 의미한다. 이 때 Semaphore 연산은 초기화 연산(semaphore S의 값을 초기화 하는 연산)과 두개의 원자적 연산(P operation & V operation)으로 나눈다. Semaphore는 1)상호배제, 2) 유한 개수의 자원 접근, 3) 프로세스 동기화를 위한 것이 목적이다. 이를 위해 사용되는 각각의 방법을 알아보자면, 1) 상호배제 구현 > 이진 세마포 (Mutex lock과 유사..

Computer Science 2024.01.14

[운영체제] 임계구역 문제, 해결책(상호배제 ,진행 , 한정 대기)

운영체제 상에서 임계구역(Critical section:CS)이란 프로세스가 공유 자원을 변경할 수 있는 코드 부분을 의미한다. )이 때 공유자원은 공유 변수, 테이블, 파일 등을 뜻함).이러한 임계구역 상에서 경쟁조건이 발생하지 않도록 서로 협력하기 위한 방법으로서, 프로세스 동기화와 조정이 사용된다. 임계구역 문제를 해결하기 위한 해결방안으로써, 3가지 필요조건이 존재한다. 1) 상호배제 프로세스가 본인의 임계구역 상에서 실행중이라면, 다른 프로세스들은 자신의 임계구역 내에서 진행될 수 없다. 2) 진행 임계구역 상에서 진행되는 프로세스가 없고, 자신의 임계구역으로 진입하려는 프로세스가 있다면, 나머지 구역에서 실행하지 않는 프로세스들만이 cs에 진입하는 프로세스 결정에 참여한다. 그리고 CS 밖에서..

Computer Science 2024.01.12

[운영체제] 다중 쓰레드 모델(Many-to-one 모델, One-to-One 모델, Many-to-Many 모델)

쓰레드는 사용자 쓰레드와 커널 쓰레드로 나눌 수 있다. 사용자 쓰레드는 thread library에 의해서 커널 지원 없이 사용자 수준에서 제공한다. 커널 쓰레드는 OS 커널에서 직접 지원되고 관리된다. 현대 운영체제(windows,Solaris, Linux, Mac OS)는모두 커널 쓰레드를 지원한다. 이 떄 사용자 프로그램의 쓰레드와 커널 쓰레드 간에 여러 연관 관계가 존재하는데, Many-to-One 모델, One-to-One 모델, Many-to-Many모델로 볼 수 있다. 1) Many-to-One 모델 (solaris 구버전) 다수의 user-level thread가 한 개의 kernel thread에 연관되는 모델으로, thread 스케줄링과 동기화가 사용자 공간의 thread library..

Computer Science 2024.01.10

[운영체제] 쓰레드 개념, TCB(쓰레드 제어 블록)에 대하여

쓰레드는 CPU 이용의 기본 실행 단위로서, 단일 쓰레드(하나의 실행단위로 구성되는 쓰레드 프로세스)와 다중 쓰레드(여러 개의 실행 쓰레드를 갖는 프로세스) 로 나눈다. 쓰레드 사용 자원은 같은 프로세스에 속한 다른 쓰레드들과 코드, 데이터, os 자원들을 공유한다. (파일 오픈 시 공유됨) stack, CPU register 저장공간은 쓰레드 전용공간을 사용한다. Thread Control Block(TCB)는 쓰레드에 대한 정보를 보관하는 보관소이다. thread ID와 thread 실행상태 , program counter와 register set으로 구성된 thread context, 그리고 thread specific 메모리 공간(정적 메모리)를 가지고 있다.

Computer Science 2024.01.08
반응형