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...
 Collectio...
 Collectio...
 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의 역할
        ...
    
  
  
    Operating System이 존재하지 않고 Human Operator가 Operating System의 역할을 했음
    
      Human Operator의 역할
        ...
 Operating System이 존재하지 않고 Human Operator가 Operating System의 역할을 했음
    
      Human Operator의 역할
        ...
    
  
  
    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
 Dynamic Typing
  
    Static typing은 runtime 이전(또는 compile-time)에 하는 type checking
     장점 : 실행 속도가 빠름, 컴파일 최적화를 통해 runtime 효율성 향상 및 메모리 사용 절약 가능
 장점 : 실행 속도가 빠름, 컴파일 최적화를 통해 runtime 효율성 향상 및 메모리 사용 절약 가능
     단점 : development-time이 길어 빠르게 변화하는 요구사항에 대처하기 어려움
  
  
    Dynamic typing은 ...
 단점 : development-time이 길어 빠르게 변화하는 요구사항에 대처하기 어려움
  
  
    Dynamic typing은 ...
 Dynamic Typing
  
    Static typing은 runtime 이전(또는 compile-time)에 하는 type checking
 Dynamic Typing
  
    Static typing은 runtime 이전(또는 compile-time)에 하는 type checking
     장점 : 실행 속도가 빠름, 컴파일 최적화를 통해 runtime 효율성 향상 및 메모리 사용 절약 가능
 장점 : 실행 속도가 빠름, 컴파일 최적화를 통해 runtime 효율성 향상 및 메모리 사용 절약 가능
     단점 : development-time이 길어 빠르게 변화하는 요구사항에 대처하기 어려움
  
  
    Dynamic typing은 ...
 단점 : development-time이 길어 빠르게 변화하는 요구사항에 대처하기 어려움
  
  
    Dynamic typing은 ...34 post articles, 5 pages.