목록컴퓨터 과학(Computer science) (11)
데이터 엔지니어
Disk Scheduling logical block: 디스크 외부에서는 logical block단위로 바라본다 sector: logical block이 물리적인 디스크 sector에 매핑되어있다. 디스크가 관리하는 최소 단위는 섹터이다. Disk Management physical formatting(Low-level formatting) 디스크를 섹터들로 나누는 과정 각 섹터 = header + 실제 데이터(보통 512 bytes) + trailer header와 trailer는 sector number, ECC(Error-Correcting-Code) 등의 정보가 저장 됨. (Controller가 접근 및 운영) Partitioning 디스크를 하나 이상의 실린더 그룹으로 나누는 과정 OS는 이것을..
파일과 파일 시스템 File A named collection of related information 일반적으로 비휘발성의 보조기억장치에 저장 다양한 저장장치를 file이라는 동일한 논리적 단위로 봄 operation create, read, write, reposition(lseek, 파일의 위치를 생성해주는 연산) open, close File attribute(= metadata) 파일을 관리하기 위한 각종 정보들 파일 이름, 유형, 위치, 사이즈, 접근 권한, 시간, 소유자 등 File System 운영체제에서 파일을 관리하는 부분 파일, 메타데이터, 디렉토리 정보 등을 관리 파일의 저장 방법, 보호 결정 Directory 파일의 메타데이터 중 일부를 보관하고 있는 특별한 파일 디렉토리에 속한 ..
Demand Paging : 실제로 필요할 때 page를 메모리에 올리는것(= 요청이 있으면 page를 메모리에 올리는 것) I/O양의 감소 Memory 사용량 감소 빠른 응답 시간 더 많은 사용자 수용 Vaild / Invalid bit의 사용 invalid 사용되지 않는 주소 영역 = 위의 그림에서 G, H 페이지가 물리적 메모리에 없는 경우 = 위의 그림에서 B, D,E address translation시 invalid면 page fault가 난다. Page Fault : invalid page를 접근하면 MMU가 trap을 발생 시킴(page fault trap) kernel mode로 들어가서 page fault handler가 invoke된다. 순서 비정상적인 접근인지 확인(잘못된 주소, 권..
Address Logical address(= virtual address) 논리적 주소 프로세스마다 독립적으로 가지는 주소 공간 각 프로세스마다 0번지부터 시작 CPU가 보는 주소는 logical address임 Physical address 실제 메모리 주소 주소 바인딩(Address Binding) 주소 바인딩(주소 결정) - Symbolic Address -> Logical Address -> Physi cal address 주소 바인딩이 언제 발생하는가? 1. Compile time binding 컴파일 시점에 물리적 메모리 주소가 결정 컴파일러는 절대코드(absolute code)를 생성 2. Load time binding Loader가 물리적 메모리 주소를 부여 컴파일러가 재배치 가능 코드..
데드락(= 교착상태) 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태 Resouce(자원) 하드웨어 소프트웨어등을 포함하는 개념 I/O device, CPU cycle, memory space, semaphore 예제 1 두개의 디스크가 필요한데 각 프로세스가 서로다른 하나씩 가지고 기다리는 상태 예제 2 세마포어 Deadlock발생의 4가지 조건 Mutual exclusion(상호 배제) - 매 순간 하나의 프로세스만이 자원을 사용할 수 있음 No preemption(비선점) - 자원을 강제로 빼앗기지 않음 Hold and wait(보유 대기) - 내가 자원을 가진채로 다른 자원을 요청함 Circular wait(순환 대기) - 자원을 기다리는 프로세스 간 사이클이 형성 Resourc..
데이터의 접근과정에서 문제를 먼저 살펴보도록 합니다. Process Synchronization = 프로세스 동기화 = Concurrency Control = 병행 제어 데이터의 접근 데이터를 가져와 연산하고 연산 후 결과를 데이터에 다시 저장 연산(실행) 데이터 저장 CPU Memory 컴퓨터 내부 디스크 프로세스 프로세스의 주소공간 Race Condition 하나의 storage를 여러 실행장치에서 접근함 이래서 동기화(Synchronizaition) 문제가 생김 언제 발생하는가? 1. Kenel 수행중 인터럽트가 발생하여 인터럽트 처리루틴이 수행됨 양쪽 다 커널 코드이므로 kenel address space 공유 결과적으로는 interrupt는 반영안되고 count++만 반영 기존 커널 코드 작업이..
CPU 스케줄링 CPU burst와 I/O burst를 하는 단계가 번갈아가면서 사용 CPU를 오랫동안 쓰는 job을 CPU bound job (점유) 계산 위주의 job I/O를 자주하는 job은 I/O bound job (빈도) I/O에 많은 시간이 필요한 job 여러 job이 섞여 있기 때문에 CPU 스케줄링(누구에게 얼만큼 시간을 주고 뺏을 것이냐)이 필요하다. CPU Scheduler & Dispatcher CPU Scheduler Ready상태 프로세스 중에서 CPU를 줄 프로세스를 고르는 역할 Dispatcher CPU의 제어권을 CPU Scheduler로 부터 선택된 프로세스에 넘긴다. 이 과정을 Context Switch라고 한다. 주의! 둘다 하드웨어가 아니라 운영체제 안에 있는 거다 ..
4번째 챕터입니다. 이번 챕터에서는 Process의 생성과 삭제를 코드로 설명해주십니다. 문제나 다른 정리본을 참고하실려면 아래 깃헙 레포를 참고해주세요. 4번째 강의 링크 깃헙 레포: github.com/smothly/OS-study-7week-challenge smothly/OS-study-7week-challenge 7주동안 진행 되는 OS 스터디. Contribute to smothly/OS-study-7week-challenge development by creating an account on GitHub. github.com 프로세스 프로세스 생성 부모 프로세스를 복제하여 자식 프로세스를 만듭니다. 복제라는 것은 프로세스의 문맥을 그대로 복사하는 것이다. Copy-on-write(COW) w..