Home

File System

File System Files and Directories File : A named collection of byte stored on disk 사용자와 OS가 File을 보는 관점의 차이 사용자 입장에서는 Byte Sequence이지만 OS 입장에서는 Block Sequnece이다 (Disk는 Block device이고 Block 단위로 I/O activity가 발생함) Naming : Disk 위에 만들어논 File을 Addressing 할 수 있게 만드는 것 File Descriptor : File의 내용에 접근하기 위해 필요한 Meta d...

Read more

I/O Hardware

I/O Hardware Inside I/O Device Status Register : 장치의 상태를 보여주는 Register Control Register : 장치의 동작을 결정하는 Register Data Register : 입출력할 데이터를 잠시 보관하는 Register I/O Device의 Register에 접근하는 두가지 방법 : Memory mapped I/O Port mapped I/O OS가 I/O Device를 제어한다는 것은 I/O Device에 있는 Register들을 Programming한다는 것임 I/O...

Read more

Memory Management

Program Development Process and Tool Source file : 사람이 읽을 수 있는 형태로 적혀져 있는 파일 Object file : 수행 명령, data, 그리고 이런 명령과 data가 메모리 어디에 저장 되어있는지에 대한 주소 정보가 있음 Symbol Table도 있음 Symbol Table : Program에서 사용하는 Symbol들에 대한 정보를 저장하는 자료구조 Relocation Table도 있음 Relocation infor...

Read more

Process Synchronization and Deadlock

Why Process Synchronization? Background Scalability : Hardware성능을 증가시켰을 때, Linear하게 Software적인 성능도 증가하는 것 실제로는 CPU에 개수가 어느 Threshold에 다가가게 되면 더 이상 성능이 증가하지 않는 문제가 생김 그 이유는 Synchronization 문제 때문에 Smartphone의 화면이 freeze된 상태 : Smartphone의 input key들을 누르면 interrupt가 발생하지만 int...

Read more

Scheduling

Basic Concepts Resource는 두가지 종류로 나눌 수 있음 Preemptible Resource : 한 Process가 점유한 상태에서 다른 Process에게 양보할 수 있는 자원 (ex. Main memory) Non-Preemptible Resource : 한 Process가 점유하면 사용을 마칠 때 까지 다른 Process에게 양보할 수 없는 자원 (ex. Printer) Resource allocation의 2가지 문제 : 여러 Process가 한 Resource를 잡을려고 할 때 누구한테 줄것인가? 일단 ...

Read more

Processes and Threads

Process Concepts Decomposition : 복잡한 문제를 단순한 여러 개의 문제로 나누어 처리하는 방법론 Process Process란? : Program in execution, or An execution stream in the context of a particular process state Process state or Context : process가 수행되는데 영향을 줄 수 있는 정보들 :large_blue_diamond: Collectio...

Read more

Introduction to OS

Evolution of OS Phase 1 (Early ’50s ~ Mid ’60s) 컴퓨터 하드웨어 가격은 고가, 인건비는 저렴 ENIAC = CPU(진공관) + Memory(Magnetic core) + 구동을 위한 발전 설비 CPU의 Utilization을 최대화가 목적, 인건비 투자는 고려대상 :heavy_multiplication_x: Operating System이 존재하지 않고 Human Operator가 Operating System의 역할을 했음 Human Operator의 역할 ...

Read more

Python&Java&C의 성능비교

Q. 왜 Python은 C언어보다 느린가? 1. Python의 변수는 Dynamically Typed이기 때문이다 Static Typing :vs: Dynamic Typing Static typing은 runtime 이전(또는 compile-time)에 하는 type checking :large_blue_circle: 장점 : 실행 속도가 빠름, 컴파일 최적화를 통해 runtime 효율성 향상 및 메모리 사용 절약 가능 :red_circle: 단점 : development-time이 길어 빠르게 변화하는 요구사항에 대처하기 어려움 Dynamic typing은 ...

Read more