Computer Science/Operation System
-
[OS] Virtual MemoryComputer Science/Operation System 2020. 5. 3. 15:47
✔️ 가상 메모리 ( Virtual Memory ) ◾️ 가상 메모리란 RAM을 관리하는 방법이다. 각 프로세스(프로그램)에 실제 물리적 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식을 말한다. ◾️ 가상 메모리는 크게 나누어 Paging 방식과 Segment 방식이 있다. ◾️ 대부분의 시스템은 Paging 기법을 사용한다. ◾️ 가상 메모리는 운영체제가 관리한다. ◾️ 논리적 메모리 주소를 물리적 메모리 주소로 변환하는 것은 하드웨어가 한다. ◾️ 이 챕터에서는 Paging 기법을 사용하는 것으로 가정한다. ✔️ Demand Paging ◾️ Demand Paging이란 Page 요청이 있을 때, Page를 메모리에 올리는 것을 말한다. ◾️ 프로세스(프로그램)이 실행될 때 해당 프로세스를 구성..
-
[OS] Memory ManagementComputer Science/Operation System 2020. 4. 28. 13:59
✔️ 논리적 주소와 물리적 주소 ◾️ 메모리는 주소를 통해서 접근하는 매체이다. ◾️ 메모리 주소는 논리적 주소와 물리적 주소가 있다. ◾️ 논리적 주소 : 프로그램마다 가지고 있는 독자적인 주소이다. ◾️ 물리적 주소 : 실제 메모리의 주소이다. ◾️ 물리적 메모리 아래부분은 OS 커널이 위치한다. 상위 부분은 여러 프로그램이 섞여서 올라간다. ◾️ 프로그램이 실행이 되려면 물리적인 메모리에 올라 가야한다. 이때 프로세스의 논리적 주소가 물리적 주소로 바뀌어야한다. 이를 주소 바인딩이라고 한다. ◾️ Symbolic Address : 변수 등의 심볼로된 주소를 말한다. Symbolic Address는 컴파일 되어 숫자로된 논리적 주소로 바뀐다. ◾️ Complie time binding : 컴파일 시점..
-
[OS] DeadLockComputer Science/Operation System 2020. 4. 23. 15:04
✔️ DeadLock ( 교착 상태 ) ◾️ 'DeadLock Example 2'를 살펴보자. ◾️ P0은 A 자원을 가지고 있으면서, B자원을 요구한다. ◾️ P1은 B 자원을 가지고 있으면서, A자원을 요구한다. ◾️ P0과 P1은 DeadLock 상태이다. ✔️ DeadLock 발생의 4가지 조건 ◾️ 상호배제, 비선점, 점유대기, 환형대기 4가지 조건을 모두 만족해야 DeadLock이 발생한다. ✔️ Resource-Allocation Graph ( 자원 할당 그래프 ) ◾️ 자원 할당 그래프는 프로세스의 자원 할당 상태를 표현해주는 그래프이다. ◾️ 동그라미는 프로세스, 네모는 자원을 나타낸다. 네모속의 점은 자원의 인스턴스를 의미한다. ◾️ 프로세스 -> 자원 : 프로세스가 해당 자원을 요청하..
-
[OS] Process SynchronizationComputer Science/Operation System 2020. 4. 14. 13:12
✔️ Process Synchronization (프로세스 동기화) ◾️ Concurrency Control(병행 제어)라고 부르기도 한다. ◾️ 공유 데이터의 동시 접근은 데이터의 불일치 문제를 발생시킬 수 있다. ◾️ 일관성 유지를 위해서는 협력 프로세스간의 실행 순서를 정해주는 매커니즘이 필요하다. ✔️ Race Condition ◾️ 여러 프로세스들이 동시에 공유 데이터를 접근하는 상황 ◾️ 데이터의 최종 연산 결과는 마지막에 그 데이터를 다룬 프로세스에 따라 달라진다. ◾️ Race Condition을 막기위해서는 동시 접근을 동기화(synchronize) 해야한다. 1️⃣ Race Condition이 발생하는 예 📌 Multi-processor system에서 메모리를 공유하고 있을 때 📌 공..
-
[OS] CPU SchedulingComputer Science/Operation System 2020. 4. 10. 14:37
✔️ CPU Scheduling (CPU가 1개 있는 시스템) ◾️ CPU를 사용하려는 프로세스 사이에서 우선순위를 관리하는 작업 ◾️ CPU스케줄링을 통해 CPU 이용률, 처리량을 향상시킬 수 있다. ◾️ CPU 스케줄링을 통해 프로세스의 소요시간, 대기시간, 응답 시간을 줄일 수 있다. ◾️ I/O 작업이 빈번하게 이루어지는 프로그램이 있다. (사람하고 인터렉션을 자주하는 프로그램) ◾️ 반면, I/O 작업이 빈번하게 이루어지지 않는 프로그램이 있다. (공학 계산기 프로그램) ◾️ 위 두 프로그램에 대해 CPU를 적절히 할당 해줘야한다. (I/O 작업이 빈번하게 이루어지는 프로그램에 대해 적절히 CPU를 할당해줘야 사람 입장에서 답답하지 않다.) 컴퓨터시스템 안에 있는 I/O bound job(사람이..
-
[OS] Process ManagementComputer Science/Operation System 2020. 4. 9. 12:49
✔️ 프로세스의 생성 1️⃣ 부모 프로세스가 자식 프로세스를 생성한다. 2️⃣ 프로세스는 트리구조를(계층 구조) 형성한다. 3️⃣ 프로세스는 자원을 필요로 한다. ◾ OS로부터 자원을 할당 받는다. ◾ 부모 프로세스의 자원을 공유한다. 4️⃣ 자원의 공유 ◾ 부모와 자식이 모든 자원을 공유하는 모델 ◾ 일부를 공유하는 모델 ◾ 전혀 공유하지 않는 모델 (일반적임) 5️⃣ 프로세스 수행(Excution) ◾ 부모와 자식이 공존하며 수행되는 모델 ◾ 자식이 종료될 때까지 부모가 기다리는(wait, blocked)모델 6️⃣ 프로세스 주소 공간 ◾ 자신은 부모의 공간을 복사한다. (Context까지 다 복사) ◾ 자식은 그 공간에 새로운 프로그램을 올린다. ◾ 유닉스에서는 fork() 시스템 콜로 부모를 복사..
-
[OS] Process / ThreadComputer Science/Operation System 2020. 4. 9. 12:22
[OS] ✔️ 프로세스 ( process ) ◾ 프로세스는 CPU가 수행 중인 프로그램을 말한다. ◾ 운영체제로부터 자원을 할당 받는 자원 소유권의 단위이다. ◾ 운영체제로부터 code, data, stack, heap, PC, register 등의 자원을 할당받는다. ◾ 프로그램은 명령어 리스트를 지닌 실행 파일 클래스이고, 프로세스는 메모리에 적재되어 프로그램 카운터와 자원을 가진 인스턴스이다. 1️⃣ 프로세스의 문맥 ( Context ) ◾️ 프로그램은 실행이 되고 종료된다. 문맥이라는 것은 특정 시점에 프로세스가 어떤 상태인지 나타내기 위해서 사용되는 것이다. ◾️ 즉, 프로세스의 문맥을 통해 특정 시점에서 프로세스가 어디까지 수행을 했는지를 알 수 있다. ◾️ 프로세스의 현재 상태를 나타내는데 ..
-
[OS] Operating System IntroductionComputer Science/Operation System 2020. 4. 9. 12:21
✔️ OS(Operating System - 운영체제) ◾ 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 ✔️ OS의 목적 ◾ 컴퓨터 시스템의 자원을 효율적으로 관리하는 것 : CPU, 메모리, 입출력 장치, 프로세스, 파일, 메세지 등을 관리 ◾ 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 : 여러 프로그램을 동시에 사용할 수 있게 해준다. ✔️ 커널 ◾ 운영체제의 핵심 부분으로 메모리에 상주하는 부분 ✔️운영체제의 분류 1️⃣ 일괄처리 (batch processing) ◾ 작업 요청의 일정량을 모아서 한꺼번에 처리하는 시스템 ◾ 작업이 완전 종료될 때까지 기다려야 한다. ◾ ex) 천공 카드 처리 시스템 2️⃣ 시분할 (time sh..