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...
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...
Memory Management
Program Development Process and Tool
Source file : 사람이 읽을 수 있는 형태로 적혀져 있는 파일
Object file :
수행 명령, data, 그리고 이런 명령과 data가 메모리 어디에 저장 되어있는지에 대한 주소 정보가 있음
Symbol Table도 있음
Symbol Table : Program에서 사용하는 Symbol들에 대한 정보를 저장하는 자료구조
Relocation Table도 있음
Relocation infor...
Process Synchronization and Deadlock
Why Process Synchronization?
Background
Scalability : Hardware성능을 증가시켰을 때, Linear하게 Software적인 성능도 증가하는 것
실제로는 CPU에 개수가 어느 Threshold에 다가가게 되면 더 이상 성능이 증가하지 않는 문제가 생김
그 이유는 Synchronization 문제 때문에
Smartphone의 화면이 freeze된 상태 : Smartphone의 input key들을 누르면 interrupt가 발생하지만 int...
Scheduling
Basic Concepts
Resource는 두가지 종류로 나눌 수 있음
Preemptible Resource : 한 Process가 점유한 상태에서 다른 Process에게 양보할 수 있는 자원 (ex. Main memory)
Non-Preemptible Resource : 한 Process가 점유하면 사용을 마칠 때 까지 다른 Process에게 양보할 수 없는 자원 (ex. Printer)
Resource allocation의 2가지 문제 :
여러 Process가 한 Resource를 잡을려고 할 때 누구한테 줄것인가?
일단 ...
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가 수행되는데 영향을 줄 수 있는 정보들
Collectio...
Introduction to OS
Evolution of OS
Phase 1 (Early ’50s ~ Mid ’60s)
컴퓨터 하드웨어 가격은 고가, 인건비는 저렴
ENIAC = CPU(진공관) + Memory(Magnetic core) + 구동을 위한 발전 설비
CPU의 Utilization을 최대화가 목적, 인건비 투자는 고려대상
Operating System이 존재하지 않고 Human Operator가 Operating System의 역할을 했음
Human Operator의 역할
...
Python&Java&C의 성능비교
Q. 왜 Python은 C언어보다 느린가?
1. Python의 변수는 Dynamically Typed이기 때문이다
Static Typing Dynamic Typing
Static typing은 runtime 이전(또는 compile-time)에 하는 type checking
장점 : 실행 속도가 빠름, 컴파일 최적화를 통해 runtime 효율성 향상 및 메모리 사용 절약 가능
단점 : development-time이 길어 빠르게 변화하는 요구사항에 대처하기 어려움
Dynamic typing은 ...
34 post articles, 5 pages.