본문 바로가기

전체 글42

주 기억장치 - 2 단일 프로그래밍 시스템 시스템 내에 하나의 프로세스만 존재하는 것 문제점- 프로세스의 크기가 유저 영역보다 클 수 있다. (프로세스를 나누어서 사용)- 유저 영역에 놀다가 맘대로 커널영역으로 들어갈 수 있다. (경계 레지스터로 판별 가능)- 자원 낭비가 심하다. (성능 저하) 고정 분할 다중 프로그래밍 (FPM - Fixed Partition Multi-programming) - 기억장치 할당 중 가장 간단한 방법.- 기억 장치를 여러 개의 고정된 크기로 분할하는 것.- 경계 레지스터로 분할된 메모리의 경계를 구분한다.- 정적 분할 다중 프로그래밍이라고도 한다. * 결정해야 할 사항1. 분할 영역의 크기- 시스템의 부하를 분석하여, 어느 정도의 크기를 가진 영역을 몇 개 선정할 것인가를 결정2. 영역의 .. 2017. 6. 16.
주 기억장치 - 1 주 기억장치 구성 정책 1. 프로세스의 수- 단일 프로세스인가 다중 프로세스인가 2. 주 기억장치의 양(용량)- 동일하게 나눌 것인가(고정분할) 다르게 나눌 것인가(가변분할) 3. 각 프로세스에 할당 된 분할 영역의 교체 가능성- 자신에게 할당 된 영역만 사용할 것인가 자신에게 할당되지 않은 영역도 사용할 수 있을 것인가 4. 주 기억장치의 인접성- 주 기억장치의 할당 영역이 연속적인가 비 연속적인가 주 기억장치 관리 기법 1. 호출 기법- 생성된 프로세스에게 주 기억장치를 언제 할당할 것인가 2. 배치 기법- 프로세스에게 어떤 메모리 블록을 할당할 것인가 3. 교체 기법- 메모리블록이 꽉 차 있을 때 새로운 프로세스가 들어올 경우, 메모리 블록을 사용하고 있는 어떤 프로세스와 교체할 것인가 4. 할당 .. 2017. 6. 16.
프로세스 대기와 자원의 분류 프로세스 대기 다음은 프로세스 상태전이도의 일부를 확대한 그림이다. 프로세스가 Running 상태에 있다가 자원을 빼앗기거나 다른 자원이 필요한데 얻지 못하였을 경우에 시스템에 자원을 요청하고 Asleep 상태로 내려오게 된다. 용어 정리 자원형 ( Resource Type ) - 시스템 내에 존재하는 자원을 종류별로 구분한 것 단위 자원 ( Resource unit ) - 자원형에 존재하는 같은 종류의 자원을 개별적으로 지칭할 때 사용 자원의 분류 1. 선점 가능성에 의한 분류 - 선점 가능 : 프로세서, 메모리, 버스 - 선점 불가능 : 프린터 2. 할당 방식에 의한 분류 - 전체 할당 방식 : 프로세서, 버퍼 - 분할 할당 방식 : 메모리, 마우스 3. 할당 형태에 의한 분류 - 공유식 할당 : 프.. 2017. 6. 12.
교착상태(Deadlock) 발생 조건 및 해결 방법 지난 포스팅에서 프로세스 동기화와 더불어 교착상태에 대해 다뤘었다. 교착상태가 무엇인지 아직 헷갈리시는 분들은 이전 포스팅을 보고 오시길 바란다. 이번에는 교착상태의 발생 조건과 해결 방법에 대해서 알아보자. 교착상태(Deadlock) 발생 조건 교착상태는 아래의 네 가지 조건을 모두 동시에 충족할 때 발생한다. 1. 상호배제 (Mutual Exclusion)한 자원에 대한 여러 프로세스의 동시 접근 불가 2. 점유와 대기 (Hold and Wait)자원을 가지고 있는 상태에서 다른 프로세스가 사용하고 있는 자원의 반납을 기다리는 것 3. 비선점 (Non Preemptive)다른 프로세스의 자원을 강제로 가져올 수 없음 4. 환형대기(Circle wait)각 프로세스가 순환적으로 다음 프로세스가 요구하는.. 2017. 6. 9.
프로세스 동기화(Process Synchronization) - 2 임계영역(Critical Section)이란? 다중 프로그래밍 시스템에서 여러 프로세스들이 공유하고 있는 자원을 한 시점에 하나의 프로세스만 접근할 수 있도록 지정된 영역을 말한다.임계영역에는 한 번에 한 프로세스만 접근할 수 있으며, 자원을 다 사용한 프로세스는 자원을 반납하여야 하며, 반납이 완료된 후에 다른 프로세스가 자원을 사용할 수 있다.한 프로세스가 임계영역의 자원을 독점할 수는 없으며 프로세스가 임계영역으로의 진입을 시스템에 요청하면 일정 시간 내에 진입을 할 수 있어야 한다. 상호배제(Mutual Exclusion)란? 다중 프로그래밍 시스템에서 여러 프로세스들이 동시에 독립적으로 진행됨으로 인하여 발생하는 문제점들을 해결하는 기법 중 하나. 프로세스들은 상호 독립적으로 움직인다. 대부분 .. 2017. 6. 7.
프로세스 동기화(Process Synchronization) - 1 프로세스 동기화(Process Synchronization)란? 공유 데이터에 대한 동시 접근은 데이터 불일치(data inconsistency)를 초래할 수 있다. 따라서 데이터 일관성 유지를 위해서는 협력 프로세스들이 순차적으로 수행되는 것을 보장하는 메커니즘이 필요하다. 기계어 명령의 특성 : 원자성(atomicity), 분리불가능(Indivisible)-> 한 기계어 명령어 실행도중에 인터럽트(interrupt) 받지 않음 1. Atomicity(원자성)이란?원자단위 연산(Atomic Operation)은 실행중에 중단(inturruption)하지 않는, 하나 이상의 순차적인 기계어 명령(machine instruction)으로 이루어져있다. 대개 2개이상의 기계어 명령으로 이루어진 경우에는 원자.. 2017. 6. 5.
스케줄링 기법(Scheduling Method) 지난 포스팅에서 프로세스 스케줄링과 종류에 대해 다뤘다. 이번에는 선점, 비선점 스케줄링의 기법들에는 어떤 것들이 있는지 간단히 포스팅 하려고 한다. 비선점형 스케줄링(Non-preemptive scheduling) FIFO(First In First Out)가장 간단한 방식으로 선입선출의 방식이다. 먼저 들어오면 먼저 나가는 방식. 아무리 중요한 작업이 있다 하더라도 그 작업보다 먼저 들어온 작업이 끝나기 전까지는 절대 먼저 실핼될 수 없는 비효율적인 방식.FIFO라고도 하고 FCFS(First Come First Served)라고도 한다. SJF(Shortest Job First)평균 대기 시간을 최소화 하기 위해 CPU점유 시간이 가장 짧은 프로세스에 CPU를 먼저 할당하는 방식이다.실행 시간이 긴.. 2017. 6. 5.
프로세스 스케줄링(Process Scheduling) 프로세스 스케줄링이란? CPU를 사용하려고 하는 프로세스들 사이의 우선 순위를 관리하는 일스케줄링은 처리율과 CPU이용률을 증가시키고 오버헤드/응답시간/반환시간/대기시간을 최소화 시키기 위힌 기법이다.즉, CPU가 쉬지않고 계속 열심히 일할 수 있도록 효율적인 계획을 잡아주는 것이다.스케줄링에서는 장기, 중기, 단기 스케줄링이 있다.어떤 프로세스를 커널에 등록할 것이가를 정하는 장기 스케줄링,어떤 프로세스에게 메모리를 할당할 것인가를 정하는 중기 스케줄링,어떤 프로세스에게 CPU를 할당할 것인가를 정하는 단기 스케줄링이 있다. 결정 시점 CPU 스케줄링의 결정시점은 다음과 같은 프로세스의 상태 변화가 있을 떄이다.- 수행 -> 대기 (비선점, 선점)- 수행 -> 준비 (비선점)- 대기 -> 준비 (비선점.. 2017. 6. 5.
문맥교환(Context Switching) 문맥교환(Context Switching)이란? 인터럽트가 발생되었을 때 실행중이던 프로세스가 작업을 멈추었다가 다시 실행될 때 이전 작업을 다시 수행하기 위해 이전 작업 내용과 프로세스의 정보들을 PCB에 저장해 놓는다고 포스팅했었다.이 때 PCB에 프로세스의 정보를 저장하는 것을 문맥을 저장한다고 말한다. 또한 프로세스가 다시 실행되기 전에 저장해 놓았던 정보들을 다시 프로세스에 적재시키는 것을 문맥을 재적재한다고 말한다. 실행되는 순서는 아래 그림과 같다. 인터럽트 핸들러에 의해서 인터럽트 처리 루틴이 시작된다. 인터럽트가 발생하였을때 인터럽트가 처리되는데 인터럽트 처리과정 중 문맥 교환(Context Switching)이 일어난다. 문맥교환이 일어나는 동안 프로세스 상태전이도를 보면 일반적으로(자.. 2017. 6. 2.