분류 전체보기 160

[운영체제] 다단계 큐 스케줄링 / 다단계 피드백 큐 스케줄링

다단계 큐(multilevel Queue) 스케줄링 에서는 Ready queue가 여러 개의 큐로 분활되어 각 큐는 자신의 스케줄링 알고리즘을 사용한다. 이 때 각 큐는 자신의 스케줄링 알고리즘을 이용하여 스케줄링을 진행한다. (ex: foreground용 큐는 RR, background용 큐는 FCFS 사용) 스케줄링은 큐 들 사이에서도 존재해야 한다. 고정 우선순위 스케줄링은 foreground 작업을 모드 처리한 후에 background 작업을 수행한다. 그러나 기아 상태의 가능성이 존재한다. Time slice는 각 큐마다 CPU 사용량과 비율을 정해서 할당한다. EX) fore, background 에 8:2 할당 다단계 피드백 큐 스케줄링은 process 생성시에 하나의 queue에 영구할당이..

Computer Science 2024.01.17

[컴퓨터구조론] I/O 주소지정 : 기억장치-사상 I/O, 분리형 I/O

I/O장치에 I/O 주소지정을 할 때, 각 I/O 장치 당 두 개씩 주소를 할당한다.(데이터 레지스터의 주소 & 상태/제어 레지스터의 주소) I/O주소 지정방법은 기억장치-사상 방법과 분리형 I/O 방법으로 이루어진다. 1) 기억장치-사상 I/O 기억장치 주소 영역의 일부분을 I/O 제어기 내의 레지스터들의 주소로 할당하는 방식이다. 프로그래밍에서 기억장치 관련 명령어들을 I/O 장치 제어에도 사용가능하다(EX. LOAD 명령어와 STORE 명령어 등) 그리고 기억장치 읽기/쓰기 신호를 I/O 읽기/쓰기 신호로 사용한다. 2) 분리형 I/O(isolated - I/O) I/O 장치 주소공간을 기억장치 주소 공관과는 별도로 할당하는 방식이다. I/O 제어를 위해서 별도의 I/O 명령어를 사용하며, 별도의 ..

Computer Science 2024.01.16

[자료구조] 스택을 이용한 중위표기식 > 후위표기식 변경 및 후위표기식 표현방법

스택을 이용하여, 중위표기식을 후위표기식으로 변경하기 위한 절차는 다음과 같다. 스택 및 연산자 우선순위 함수 정의: 스택을 위한 구조체 및 스택 관련 함수들을 정의한다. (createStack, isEmpty, peek, push, pop) 연산자의 우선순위를 반환하는 함수인 getPrecedence를 정의한다. 중위 표기식을 후위 표기식으로 변환하는 함수 정의 (infixToPostfix): 입력된 중위 표기식을 문자열로 받아오고, 후위 표기식을 저장할 문자열(postfix)을 초기화한다. 반복문을 통해 중위 표기식을 한 글자씩 읽으면서 처리한다. 피연산자일 경우, 그대로 후위 표기식에 추가한다. 여는 괄호일 경우, 스택에 push한다. 닫는 괄호일 경우, 여는 괄호를 만날 때까지 스택에서 연산자를 ..

Computer Science 2024.01.16

[운영체제] 교착상태 개념, 특징(상호배제, 점유하며 대기, 비선점, 순환 대기)

교착상태(deadlock)란 프로세스 집합에 있는 모든 프로세스가 한 자원을 점유하고, 같은 집합의 다른 프로세스가 점유한 자원의 획득을 기다리는 상태를 의미한다. EX) DVD와 프린터에서 P1은 DVD를 점유, 프린터 요청/ P2는 프린터를 점유, DVD를 요청하는 경우 교착상태 발생 교착상태의 발생 필요조건은 4가지로 볼 수 있다. 이 4가지 조건이 '동시에' 성립할 때에 교착상태는 발생한다. 1) 상호배제 : 한 번에 한 프로세스만 사용할 수 있는 자원이 적어도 하나 존재 2) 점유하며 대기: 프로세스가 최소 하나의 자원을 점유한 상태에서 다른 프로세스가 점유한 자원을 대기 3) 순환대기 : {P0,P1,... PN)에서 각각 자기 앞 자원 대기중인 경우 4) 비선점: 자원이 강제로 방출될 수 없..

Computer Science 2024.01.15

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

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

Computer Science 2024.01.14

[컴퓨터구조론] 시스템 버스의 기본동작 , 버스 분류(동기/비동기식)

시스템 버스의 기본 동작은 다음과 같은 절차를 통해 이루어진다. - 쓰기 동작 순서 1) 버스 마스터가 버스 사용권을 획득 2) 버스를 통해 주소와 데이터 및 쓰기 신호 전송 - 읽기 동작 순서 1) 버스 마스터가 버스 사용권 획득 2) 주소와 읽기 신호를 보내고, 데이터가 전송되어 올 때까지 대기 버스 동작의 타이밍에 따라 버스는 동기식과 비동기식으로 나뉜다. 동기식 버스는 시스템 버스에서 모든 버스 동작들이 공통의 버스 클럭을 기준으로 발생하는 데에 반해, 비동기식 버스는 버스 동작들의 발생 시간이 관련된 다른 버스 동작의 발생 여부에 따라 결정된다.

Computer Science 2024.01.13

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

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

Computer Science 2024.01.12

[자료구조] Linked List를 이용한 다항식 표현방법

Linked list를 통한 다항식의 표현과정은 크게 두가지이다. 1) 다항식의 모든 항을 배열에 저장함으로써 구현하는 방법 다항식의 각종 연산이 간단해진다는 장점이 있다. 해당 항의 값을 추출하여 연산하면 되기 때문이다. 그러나 대부분의 항의 계수가 0이면 공간 낭비가 심해진다는 단점을 갖고 있다. 이를 극복하기 위한 방법으로 다음 방법을 쓴다. 2) 다항식의 계수가 0이 아닌 항만을 배열에 저장하는 방법 하나의 배열로 여러 개의 다항식을 나타낼 수 있는 방법이다. 메모리 공간 측면에서는 효율적이지만, 다항식의 연산이 복잡해진다.

Computer Science 2024.01.11

[컴퓨터구조론] RAID의 종류 (RAID - 1~5) (Chap.6 보조기억장치)

RAID는 디스크 배열의 결함허용도를 높이기 위한 방법으로서, 검사 디스크들을 이용하여 오류를 검출하고 복구 기능을 추가한 방법이다. 디스크 결함이 생길 시, 복구 절차는 다음과 같다. 1) 해당 디스크 사용 중단 및 시스템으로부터 분리한다. 2) 검사 디스크에 저장된 정보를 이용하여 원래의 데이터를 복구한다 3) 결함을 수리하고 디스크를 재설치한다. 4) 시스템을 재구성하여 원래의 디스크 용량을 회복한다. 이러한 RAID는 크게 다섯 종류로 이루어져 있는데, 다음과 같다. 1) RAID- 1 디스크 미러링 방식을 이용한다. 데이터 디스크에 저장된 모든 데이터들은 짝을 이루고 있는 미러 디스크의 같은 위치에 복사된다. 거의 완전한 결함허용도를 제공하는 반면, 비싼 가격이 단점으로 작용한다. 2) RAID..

Computer Science 2024.01.11

[운영체제] 다중 쓰레드 모델(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
반응형