
주소변환이 언제 이루어 지는지 크게 3가지 시점으로 나누어 볼 수 있다. 주소 바인딩 (Address Binding) Compile time binding 물리적 메모리 주소(physical address)가 컴파일 시 알려짐 시작위치 변경시 재컴파일 컴파일러는 절대 코드(absolute code) 생성 (logical address = physical address) Load time binding Loader의 책임하에 물리적 메모리 주소 부여 (실행시작시 부여) 컴파일러가 재배치가능코드(relocatable code)를 생성한 경우 가능 Execution time binding(=Run time binding) 수행이 시작된 이후에도 프로세스의 메모리 상 위치를 옮길 수 있음 CPU가 주소를 참조할..

Deadlock : 일련의 프로세스들이 서로가 가진 자원을 기다리며 block 된 상태 Resource (자원) 하드웨어, 소프트웨어 등을 포함하는 개념 (예) I/O device, CPU cycle, memory space, semaphore 등 프로세스가 자원을 사용하는 절차 (Request, Allocate, Use, Release) Deadlock Example 1 시스템에 2개의 tape drive가 있다. 프로세스 P1과 P2 각각이 하나의 tape drive를 보유한 채 다른 하나를 기다리고 있다. Deadlock Example 2 Deadlock 발생의 4가지 조건 Mutual exclusion (상호 배제) : 매 순간 하나의 프로세스만이 자원을 사용할 수 있음 No preemption ..

* 병행 제어 (Concurrency Control) OS에서 race condition은 언제 발생하는가? 1. kernel 수행 중 인터럽트 발생 시 2. Process가 system call을 하여 kernel mode로 수행중인데 context switch가 일어나는 경우 PB에서 증가된 count는 PA에서 인식하지 못하는 문제가 발생한다 3. Multiprocessor에서 shared memory 내의 kernel data Process Synchronization 문제 공유 데이터(shared data)의 동시 접근(concurrent access)은 데이터의 불일치 문제(inconsistency)를 발생시킬 수 있다. 일관성(consistency) 유지를 위해서는 협력 프로세스(cooper..

CPU 어떤 프로그램이든 프로그램이 실행되는 것은 CPU burst와 I/O burst를 반복하며 실행된다, 단 프로그램이 종류에 따라 반복될 수도 있고 CPU burst만 나올수도 있다. 프로세스의 특성 분류 프로세스는 그 특성에 따라 다음 두가지로 나눔 - I/O-bound process - cpu를 잡고 계산하는 시간보다 I/o에 많은 시간이 필요한 job - many sort CPU bursts - CPU-bound process - 계산 위주의 job - few very long CPU bursts CPU scheduler & dispatcher (소프트웨어나 하드웨어가 따로 존재하는게 아니라 운영체제 안에 있는거임, 운영체제 안에 존재하는 기능임) CPU scheduler : ready 상태의..

프로세스 생성 Copy-on-write (COW) : write가 발생했을 때 copy를 한다. 부모 프로세스가 자식 프로세스 생성 프로세스의 트리(계층 구조) 형성 프로세스는 자원을 필요로 함 - 운영체제로부터 받는다, 부모와 공유한다 자원의 공유 - 부모와 자식이 모든 자원을 공유하는 모델 - 일부를 공유하는 모델 - 전혀 공유하지 않는 모델, cpu를 얻기위해 경쟁 (일반적) 수행 (execution) - 부모와 자식은 공존하며 수행되는 모델 - 자식이 종료(terminate) 될 때까지 부모가 기다리는(wait) 모델 주소 공간 (Address space) - 자식은 부모의 공간을 복사함 (binary and OS data) - 자식은 그 공간에 새로운 프로그램을 올림 유닉스의 예 - fork()..

프로세스의 개념 “process is a program in execution.” 실행중인 프로그램. 프로세스의 문맥(context) - cpu 수행 상태를 나타내는 하드웨어 문맥 - 프로그램을 실행하면서 현재시점에 - program counter가 어느 프로그램을 가리키고 있는가? 코드는 어느코드를 실행하고 있는지, 데이터에는 뭐가 있는지? - 각종 register (어떤 값을 가지고 있는가?) - 프로세스의 주소 공간 - code, data, stack - 프로세스 관련 커널 자료 구조 - PCB (process control block) (커널 주소공간의 data 내에 위치) - kernel stack 즉, 프로세스의 현재 상태를 나타내는데 필요한 모든 요소 프로세스 문맥(context)를 알아야 ..

컴퓨터 시스템 구조 DMA Contoller timer l l cpu -------------------------------- disk (인풋, 아웃풋 동시에) l l memory l----- 키보드, 마우스 ( 인풋 디바이스) 프로그램A l----- 프린터 (아웃풋 디바이스) 프로그램B l----- 모니터 (아웃풋 디바이스) ... OS computer I/O device I/O device : 모두 각각 device controller, local buffer를 가지고 있는데 해당 디바이스 내의 cpu, memory 역할을 한다. cpu : memory에 instruction을 하나씩 꺼내서 수행한다. registers : memory보다 빠르면서 정보를 저장할 수 있는 작은 공간 mode bit ..
운영체제 운영체제란 무엇인가? - 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어 + 하드웨어 연결하는 소프트웨어 계층 사용자 사용자 각종 소프트웨어 사용자 운영체제 컴퓨터 하드웨어 협의의 운영체제(커널) - 운영체제의 핵심 부분으로 메모리에 상주하는 부분 - 좁은의미로 이야기할때는 커널만 얘기 광의의 운영체제 - 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념 - 메모리에 상주하지 x 운영체제의 목적 - 컴퓨터시스템의 자원을 효율적으로 관리 ★ - 주어진 자원으로 최대한의 성능을 내도록 (효율성) - 사용자간의 형평성 있는 자원 분배 (형평성) - 자원 관리 - 사용자, 자신 보호 - 컴퓨터시스템을 편리하게 사용할 수 있도록 - 각각의 사용자가 똑같은 프로그램을 사용하고있지..
- Total
- Today
- Yesterday
- nomorecramming
- devicecontroller
- dmacontroller
- shortest job first
- CPU Scheduler
- Copy on Write
- exec()
- Semaphores
- deadlock detection and recovery
- real time scheduling
- deadlock ignorance
- deadlock avoidance
- multiple-processer scheduling
- process context
- CPU burst
- 부모-자식 프로세스
- timesharing
- i/odevice
- 혹시이런거쓰면문제유출인가요
- Peterson's Algorithm
- Program Counter
- docxtemplater
- 문제가된다면삭제하겠습니다
- process control block
- modebit
- deadlock prevention
- message system
- I/O burst
- multiprogramming
- test and set
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |