CS/운영체제

CS/운영체제

운영체제 ch 10. Virtual Memory

Virtual Memory Background Demand Paging Copy-on-Write 프로세스끼리 메인 메모리를 공유하게 하면서 동시에 프로세스 자신만의 데이터를 저장 Page Replacement Allocation of Frames Thrashing 요구하는 페이지가 메인 메모리에 없어 disk로부터 불러오고, 불러오는 페이지의 공간을 마련하기 위해 이전 페이지를 disk에 저장하는 page fault가 자주 발생하는 것 Memory-Mapped Files Allocating Kernel Memory Other Considerations Operating-System Examples Objectives virtual memory system의 이점을 설명 demand paging, page..

CS/운영체제

운영체제 ch 9. Main Memory

Background 프로그램을 실행하려면 디스크에서 메인 메모리로 가져와 프로세스 내에 배치해야 함 메인 메모리 및 레지스터는 CPU만 직접 액세스할 수 있음, instruction이나 data를 읽어옴 메모리 장치에는 주소 스트림 + 읽기 요청 또는 주소 + 데이터 및 쓰기 요청만 표시됨 레지스터는 하나의 CPU 클럭(또는 그 이하)에 접근, CPU 칩 안의 저장 매개체로 접근 속도 빠름 메인 메모리는 많은 사이클이 소요되어 stall이 발생할 수 있음 Cache는 메인 메모리와 CPU 레지스터 사이에 위치 register와 메인 메모리에서 data, instruction을 가져오는 처리 속도의 차이 때문에 cache 필요 메모리 보호는 올바른 작동을 보장하는 데 필요함 Base and Limit Re..

CS/운영체제

운영체제 ch 8. Deadlocks

Deadlocks CPU를 받지 못 하는 waiting process에 의해 발생할 수 있는 이벤트를 기다리는 것으로 영원히 일어나지 않는 상태 Deadlock Prevention - 보수적, 자원 효율 ↓ (프로세스 시작 전 자원 확보) Deadlock Avoidance - deadlock에 접근, 자원 활용도 조금 더 높음 Deadlock Detection - deadlock 발생 시 무시 → 어느 부분에서 발생했는지 알려줌, 어떤 경우에 발생하는지 알고 코드를 변경하는 것이 필요함 (다른 패턴으로 바꾸기) Recovery from Deadlock - deadlock 발생 시 어떻게 회복 시킬 것인지에 대한 것 system calls, locking 등을 통해 발생할 수 있음 System Model ..

CS/운영체제

운영체제 ch 7. Synchronization Examples

Classical Problems of Synchronization Bounded-Buffer Problem Producer, Consumer - Buffer의 full / empty, same slot에 접근 3개의 Semaphore (n개의 buffer) Semaphore mutex : 같은 영역에 Producer, Consumer 중 하나만 접근하도록 만들어주는 semaphore, 초기화 : 1 Semaphore full : 버퍼가 꽉 차있는지를 나타냄, 초기화 : 0 Semaphore empty : 빈 슬롯을 나타냄, 초기화 : n full = 0, empty = n, mutex = 1 Producer do { ... /* produce an item in next_produced */ ... w..

CS/운영체제

운영체제 ch 6. Synchronization Tools

critical section (임계구역) 여러 프로세스들이 동시에 접근할 수 있는 부분 race condition (경쟁 상태) 임계구역에 여러 프로세스가 동시에 접근해 예측할 수 없는 결과가 산출되는 상태 mutual exclusion (상호 배제) 한 번에 한 프로세스가 접근할 수 있도록 만들어주는 기법 프로세스를 동시에 실행 → 공유 데이터에 대한 동시 접근으로 인해 데이터 비일관성이 발생할 수 있음 프로세스가 처리하는 순서를 지켜야 함 데이터의 일관성을 유지하려면 협력 프로세스의 정상적인 실행을 보장하는 메커니즘이 필요! Producer, Consumer critical section에서 race condition이 발생하는 예 동기화가 필요할 때는? Buffer가 full/empty same ..

CS/운영체제

운영체제 ch 5. CPU Scheduling

CPU-burst CPU-burst와 I/O-burst는 교대로 동작! 대부분의 프로세스는 CPU-burst가 짧고, CPU를 적게 사용하는 프로세스들이 많음 CPU Scheduler Non-preemptive (비선점) 자발적으로 CPU를 양도하는 상태, 공평성 x running → waiting : I/O를 발생시키면 자발적으로 CPU를 넘겨주어야 함 terminates : 프로세스 종료시 문제 : real time process는 프로세스가 끝나는 deadline을 맞추기 위해 CPU를 빼앗아 와서라도 수행을 해야 함! → preemptive Preemptive (선점) 강제로 CPU를 빼앗기는 상태, 할당된 시간 끝나면 CPU를 빼앗김 → 일반적으로 많이 사용 running → ready : 프로..

CS/운영체제

운영체제 ch 3. 프로세스

실행 파일이 메모리에 로드 → 프로그램(수동적)이 프로세스(능동적)가 됨 프로세스 메모리 배치 Process State new : 프로세스가 생성됨 (컴파일한 후 디스크에 저장) running : CPU를 받아서 수행 중인 프로세스 waiting : I/O와 같은 이벤트가 일어나기를 기다림 ready : 프로세스가 CPU가 할당되기를 기다리는 상태 terminated : 프로세스 실행 완료 Diagram of Process State new → ready : disk에서 메인 메모리로 이동 ready → running : scheduler dispatch(준비 상태의 프로세스 중 하나를 선택하여 실행시킴) 수행 scheduler : 메인 메모리에서 누구를 선택할 것인가 dispatcher : 스케줄러에게..

CS/운영체제

운영체제 ch 2. OS 구조

Operating System Services 사용자 인터페이스 거의 모든 운영체제는 사용자 인터페이스를 제공 GUI(그래픽 사용자 인터페이스)는 I/O를 지시 CLI(명령어 라인 인터페이스)는 명령을 사용하며 특정 형식으로 명령을 입력 받아 사용됨 CLI, command interpreter는 직접 명령 입력을 허용함 shell - 유저의 명령어를 받아들여서 실행시킬 수 있도록 만드는 프로그램 프로그램 수행 OS가 메인 메모리로 프로세스를 가져오고, CPU를 할당해 실행 에러가 발생되면 소프트웨어 인터럽트를 발생시킴 I/O 작업 사용자가 입출력 장치를 직접 제어할 수 없어 운영체제가 입출력 수행의 수단을 제공 파일 시스템 관리 파일을 읽고 쓰거나, 생성하고 삭제 할 수 있어야 하고 파일에 대한 정보를 ..

CS/운영체제

운영체제 ch 1. Introduction

Process 수행 중인 프로그램을 의미, 메모리에 있고 CPU를 할당받지 않아도 프로세스이고, 메모리에 옮겨진다면 수행할 수 있는 프로세스가 된다. Processor CPU와 같은 하드웨어를 의미 OS → 유저와 하드웨어 사이에서 매개체 역할을 하는 소프트웨어 (kernel 부분) OS의 목표 사용자 프로그램을 수행하고 사용자 문제들을 해결하기 쉽게 만들어 줌 컴퓨터 시스템을 사용하기 편리하게 만들어 줌 (중간에서 API 제공) 효율적인 방법으로 컴퓨터 하드웨어를 사용하게 함 source program compiler가 machine language로 변경해 target program로 만들어 줌 disk(수행 속도 : ms)에 저장 OS가 메인 메모리(수행 속도 : µs)로 올림 OS가 메인 메모리의..

koeyhk
'CS/운영체제' 카테고리의 글 목록