CS/운영체제

Disk Management Disk Structure Logical block 디스크의 외부에서 보는 디스크의 단위 정보 저장 공간들 주소를 가진 1차원 배열처럼 취급 정보를 전송하는 최소 단위 Sector Logical block이 물리적 디스크에 매핑된 위치 Sector 0은 최외곽 실린더의 첫 트랙에 있는 첫 번째 섹터 트랙을 구성하는 최소 단위 = 가장 작은 저장 단위 = addressable unit on disk Track 트랙은 섹터로 구성되며 섹터에 데이터가 저장되고, 그 섹터가 쭉 나열되어 있는 것이 트랙 플래터 위의 동심원 Cylinder 각 Platter 의 n번 Track 의 집합 논리적인 단위, 헤드는 트랙 번호가 아닌 실린더 번호 참조 Disk Management Physica..
Allocation of File Data in Disk File은 크기가 균일하지 않기 때문에 동일한 크기 단위인 sector로 나누어 저장 (메모리 관리 기법 중 페이징 기법과 유사) Contiguous Allocation Contiguous Allocation 하나의 파일이 디스크 상에 연속해서 저장되는 방식으로, 나누어진 각 블록들이 연속된 번호를 부여 받아 저장된다. Pros Fast I/O (대부분의 접근 시간은 헤더가 움직이면서 읽어들이는 시간) 한번의 seek/rotation으로 많은 바이트 transfer 가능 (모두 연속해서 붙어있으므로) Realtime file (공간효율성보다 속도 효율성이 더 중요할 때) 또는 이미 run 중이던 process의 swapping 용으로 사용 (프로세..
File Systems File and File System File A named collection of related information 일반적으로 비휘발성 보조 기억장치(영구 기억 장치)에 저장 OS는 다양한 저장 장치를 file이라는 동일한 논리적 단위로 볼 수 있ㄱ 해 줌 File attribute(metadata) 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들 File system OS에서 파일을 관리하는 부분 - 파일, 파일의 메타데이터, 디렉토리 정보 등 관리 파일의 저장 방법 결정, 파일 보호 Directory 파일과 다른 디렉토리를 포함하는 특별한 종류의 파일 파일의 메타데이터 중 일부를 보관하고 있는 일종의 특별한 파일 Partition (Logical Disk) 하..
Demand Paging Demand Paging 실제로 필요할 때 page를 physical memory에 올리는 방법 I/O 감소, Memory 사용량 감소, 빠른 응답 시간, 더 많은 process 수용 Valid / Invalid bit 사용 Invalid = 페이지가 물리적 메모리에 없는 경우, 처음에는 모든 page entry가 Invalid로 초기화 Page Fault Page Fault Invalid page를 접근하면 MMU가 interrupt 발생시킴 Kernel mode로 들어가서 page fault handler가 invoke 됨 Page Fault 처리 순서 if invalid reference: abort process Get an empty page frame (없는 경우 re..
Memory Address Logical Address (= virtual address) 프로세스마다 독립적으로 가지고 있는 주소 공간 각 프로세스마다 0번지로부터 시작 CPU가 보는 주소는 logical address Physical Address 메모리에 실제로 올라가는 위치 DRAM에서의 변하지 않는 실제 주소 Symbolic Address 프로그래머가 사용하는 변수나 레이블과 같은 기호적인 이름으로 표시된 주소 Address Binding Address Binding Symbolic Address -> Logical Address -> Physical Address (1) Compile Time Binding 컴파일 시 정적으로 물리적 주소가 결정됨 프로그램의 시작 위치를 변경하려면 전체 프로그..
Deadlock Problem Deadlock Deadlock 일련의 프로세스들이 서로가 가진 자원(Resource)을 기다리며 block된 상태 Resource 하드웨어, 소프트웨어를 모두 포함하는 개념 프로세스가 자원을 이용하는 절차: Request -> Allocate -> Use -> Release Deadlock 발생 조건 (1) Mutual exclusion 매 순간 하나의 프로세스만이 자원을 사용할 수 있음 (2) No preemption 프로세스는 자원을 스스로 내어놓을 뿐 강제로 빼앗기지 않는다. (3) Hold and wait 자원을 가진 프로세스가 다른 자원을 기다릴 때 보유 자원을 놓지 않고 계속 갖고 있음 (4) Circular wait 자원을 기다리는 프로세스간에 사이클이 형성되..
Race Condition Race Condition Race Condition 여러 데이터들이 동시에 공유 데이터를 접근하는 상황 Storage Box (memory, address space) 를 공유하는 Execution Box (CPU Process)가 여러 개 있는 경우 Race Condition이 발생할 수 있다. OS에서 Race Condition이 발생하는 경우 1. kernel 모드 수행 중 인터럽트 발생 시 2. Process가 system call을 하여 kernel 모드로 수행중인데 context switch가 일어나는 경우 두 프로세스의 address space간에는 데이터 공유가 없으나 system call을 하는 동안에는 kernel address space의 데이터를 공유하기..
CPU Scheduling CPU Scheduling이 필요한 이유 여러 종류의 job(process)가 섞여 있기 때문에 Interactive job에게 적절한 response를 제공하고, 시스템 자원을 효율적으로 사용하기 위해 CPU Scheduling이 필요하다 프로세스의 특성 분류 I/O-bound process: I/O에 많은 시간이 필요한 job, many short CPU bursts CPU-bound process: 게산 위주의 job, few very long CPU bursts CPU Scheduler & Dispatcher CPU Scheduler Ready 상태의 프로세스 중에서 CPU를 줄 프로세스를 고른다 (Short-term scheduler) Dispatcher CPU 제어권..
Process Process is a program in execution (실행중인 프로그램) 프로세스의 문맥(context) 하드웨어 문맥: CPU 수행 상태를 나타냄. Program Counter, 각종 register 프로세스의 주소 공간: code, data, stack 으로 구성 프로세스 관련 커널 자료 구조: PCB, Kernel Stack 프로세스의 문맥을 알고 있어야 다른 프로세스로 제어권이 넘어가고 다시 돌아올 때 실행해야 할 instruction의 위치나 프로세스의 상태를 알 수 있다. Process Status 프로세스는 상태(state)가 변경되며 수행된다. Running: CPU를 잡고 instruction을 수행 중인 상태 (CPU를 잡는다 == PC(Program Counte..
Mode Bit Mode Bit: 하드웨어적으로 두 가지 operation 지원 Mode Bit == 1 : 사용자 모드 - 사용자 프로그램 수행 Mode Bit == 0 : 모니터 모드 (= 커널 모드, 시스템 모드) - OS 코드 수행, System call 수행 보안과 관련된 중요한 명령어는 모니터 모드에서만 수행 가능한 특권명령 Interrupt나 Exception 발생 시 하드웨어가 Mode Bit를 0으로 바꿈 사용자 프로그램에게 CPU를 넘기기 전에 Mode Bit를 1로 바꿈 Timer Timer 타이머 시간이 0이 되면 타이머 인터럽트를 발생시켜서 운영체제에 제어권이 넘어가도록 한다. CPU를 특정 프로그램이 독점하는 것으로부터 보호 Time sharing을 구현하거나 현재 시간을 계산할..