Memory Management (2) 연속할당
·
운영체제[반효경]/Ch08. Memory Management
물리적인 메모리를 관리하는 방법Allocation of Physical Memory 메모리는 일반적으로 두 영역으로 나누어서 사용OS 상주 영역interrupt vector와 함께 낮은 주소 영역 사용사용자 프로세스 영역높은 주소 영역 사용사용자 프로세스 영역의 할당 방법Contiguous allocation각각의 프로세스가 메모리의 연속적인 공간에 적재되도록 하는 것Fixed partition allocationVariable partition allocationNoncontiguous allocation하나의 프로세스가 메모리의 여러 영역에 분산되어 올라갈 수 있음PagingSegmentationPaged SegmentationContiguous Allocation 고정분할(Fixed partitio..
Memory Management (1)
·
운영체제[반효경]/Ch08. Memory Management
Logical vs Physical AddressLogical Address (Virtual Address) 프로세스마다 독립적으로 가지는 주소 공간각 프로세스마다 0번지부터 시작CPU가 보는 주소는 logical address 이다물리적 메모리에 올라갈 때 시작 위치는 바뀌지만 코드상의 logical address 는 남아있게 된다Physical address메모리에 실제 올라가는 위치주소 바인딩 : 주소를 결정하는 것프로그램이 실행 되려면 주소가 변경되어야 하는데 주소를 변경하는 과정을 말한다Symbolic Address → Logical Address → 이 시점이 언제인가 → Physical addressSymbolic Address 프로그래머 입장에서 숫자로 된 주소가 아닌 심볼을 사용한다ex)..
Ch07. Deadlock 교착상태 (1)
·
운영체제[반효경]/Ch07. Deadlocks
The Deadlock ProblemDeadlock일련의 프로세스들이 서로가 가진 자원을 기다리며 block 된 상태해결하기 위해서는 오버헤드가 크다누군가 희생한다면 (자원반납) 데드락은 생기지 않는다서로 희생하지 않고, 자원을 가지고 있으면서 다른 자원을 요구하기 때문에 발생한다Resource (자원)하드웨어, 소프트웨어 등을 포함하는 개념ex) I/O device, CPU cycle, memory space, semaphore 등프로세스가 자원을 사용하는 절차RequestAllocateUseReleaseDeadlock 발생의 4가지 조건4가지 조건을 모두 만족해야 Deadlock이 발생한다Mutual Exclusion (상호배제)매 순간 하나의 프로세스만이 하나의 자원을 사용할 수 있다No Preem..
Ch06. Process Synchronization (4)
·
운영체제[반효경]/Ch06. Process Synchronization
Bounded Buffer Problem (Producer-Consumer problem)문제1: 동시접근생산자: 생산자가 동시에 같은 버퍼의 데이터를 저장하려는 경우소비자: 소비자가 동시에 같은 버퍼의 데이터를 가져가려는 경우문제2: 무제한 접근생산자: 데이터를 저장할 빈 버퍼가 없는 경우 - 생산자 입장에서 사용 가능한 자원이 없는 상태소비자가 데이터를 꺼내가고 빈 버퍼가 생겨야 데이터 저장가능소비자: 데이터를 가져갈 버퍼가 없는 경우 - 소비자 입장에서 사용 가능한 자원 없음생산자가 데이터를 만들어 버퍼를 생성해줄때까지 기다려야한다lock을 걸기 위한 mutex내용이 들어있는 버퍼의 개수를 세기 위한 변수 full내용이 비어있는 버퍼의 개수를 세기 위한 변수 emptyShared databuffer..
Ch06. Process Synchronization (3)
·
운영체제[반효경]/Ch06. Process Synchronization
Semaphores앞의 방식들을 추상화 시킨다Semaphore SInteger variable아래의 두 가지 atomic 연산에 의해서만 접근 가능*atomic 연산: 여러 스레드들이 있을 때 하나의 공유 데이터에 대한 연산에서 한 스레드가 write 작업을 하고 있을 때, 다른 스레드가 read하는 것을 막기 위해서 하드웨어에서 지원하는 방법이다. P(S): while(S Critical Section에 Semaphore을 사용한다면Synchronization variablesemaphore mutex; //initially 1" 1개가 CS에 들어갈 수 있다Process Pido{ P(mutex); //if positive, decrement&enter, Otherwise wait critic..
Ch06. Process Synchronization (2)
·
운영체제[반효경]/Ch06. Process Synchronization
임계 구역 문제를 해결하기 위한 충족 조건상호배체 (Mutual Exclusion)어떤 프로세스가 임계 구역 부분을 수행 중이면 다른 모든 프로세스는 그의 임계 구역에 들어가면 안된다진행(Progress)아무도 임계 구역에 있지 않은 상태에서 임계 구역에 들어가고자 하는 프로세스가 있으면 임계 구역에 들어가게 해주어야 한다유한 대기(Bounded Waiting)프로세스가 임계 구역에 들어가려고 요청한 후부터 그 요청이 허용될 때 까지 다른 프로세스들이 임계 구역에 들어가는 횟수에 한계가 있어야 한다임계 구역 문제 해결 알고리즘Algorithm1Synchronization variableint turn;initially turn = 0; //몇 번 프로세스가 들어갈 수 있는지를 알려주는 turn 변수Pro..
Ch05. CPU Scheduling
·
운영체제[반효경]/Ch05. CPU Scheduling
CPU SchedulerReady 상태의 프로세스 중에서, 이번에 CPU를 줄 프로세스를 고른다DispatcherCPU의 제어권을 CPU scheduler에 의해 선택된 프로세스에게 넘긴다이 과정을 context switch(문맥 교환)이라고 한다 CPU 스캐줄링이 필요한 경우는 프로세스에게 다음과 같은 상태 변화가 있는 경우이다Running → Blocked (I/O 요청하는 시스템 콜)Running → Ready (할당시간만료로 timer interrupt)( cpu 강제로 뺏기)Blocked → Ready (I/O 완료 후 인터럽트)Terminatedcpu를 가지고 기계어를 하는 것 CPU bursti/o 를 하는 것은 i/o bursti/o burst와 cpu burst를 번갈아가면서 실행하는 게..
Ch06. Process Synchronization (1)
·
운영체제[반효경]/Ch06. Process Synchronization
동기화란? Process Synchronization 문제공유 데이터 (shared data)의 동시 접근 (concurrent access) 는 데이터 불일치 문제 (inconsistency)를 발생시킬 수 있다일관성(consistency) 유지를 위해서는 협력 프로세스(cooperating process) 간의 실행 순서(orderly execution)을 정해주는 메커니즘이 필요하다데이터의 접근 ex) E-boxS-boxCPUMemory컴퓨터내부디스크프로세스그 프로세스의 주소 공간 Race Condition여러 프로세스들이 동시에 공유 데이터를 접근하는 상황데이터의 최종 연산 결과는 마지막에 그 데이터를 다룬 프로세스에 따라 달라짐 race condition을 막기 위해서는 concurrent pr..
Ch01. Introduction to Operating Systems 01
·
운영체제[반효경]/Ch01. Introduction to Operating Systems.
운영체제란?컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층좁은의미로 (전공자의 입장에서는)협의의 운영체제 (커널)운영체제의 핵심 부분으로 메모리에 상주하는 부분넓은의미커널 뿐만 아니라 각종 주변 시스템 유틸리티를 포함한 개념메모리에 상주하지 않는 독립적인 프로그램운영체제의 목적컴퓨터 시스템의 자원(리소스)을 효율적으로 관리프로세서, 기억장치, 입출력 장치 등을 효율적 관리사용자간의 형평성 있는 자원 분배 (형평성)주어진 자원으로 최대한의 성능을 내도록 (효율성)사용자 및 운영체제 자신의 보호프로세스, 파일, 메세지 등을 관리컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공운영체제는 동시 사용자/프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같..