본문 바로가기

Computer Science/운영체제

(13)
반효경 운영체제 - 10. Disk Management & Scheduling Disk Management 디스크에서 저장하는 최소 단위 - 섹터 디스크 외부에서 관리하는 단위 - logical block Disk structure logical block 디스크 외부에서 보는 디스크의 단위 정보 저장 공간들 주소를 가진 1차원 배열처럼 취급 정보를 전송하는 최소 단위 Sector Logical block이 물리적인 디스크에 매핑된 위치 Sector 0은 최외곽 실린더의 첫 트랙에 있는 첫 번째 섹터이다. 부팅과 관련된 정보가 저장 Disk Management physhical formatting(low-level formatting) 디스크를 컨트롤러가 읽고 쓸 수 있도록 섹터들로 나누는 과정 각 섹터는 header + 실제 데이터 + trailer로 구성 header와 trai..
반효경 운영체제 - 9. File System File and File System file 연관된 정보의 집합 - A named collection of related information 일반적으로 비휘발성의 보조기억장치에 저장 운영체제는 다양한 저장 장치를 file이라는 동일한 논리적 단위로 볼 수 있게 해줌 Operation create, read, write, reposition(파일 포인터의 위치 변경), delete, open(파일의 메타데이터를 메모리에 올려놓는 작업), close File attribute(file metadata) 파일 자체의 내용이 아닌 파일을 관리하기 위한 각종 정보들 파일 이름, 유형, 저장된 위치, 파일 사이즈 접근 권한 (읽기/쓰기/실행), 시간 (생성/변경/사용), 소유자 등 File System 운영체제..
반효경 운영체제 - 8. 가상 메모리 Demand Paging 실제로 필요할 때 page를 메모리에 올리는 것 I/O 양의 감소 Memory 사용량 감소 빠른 응답 시간 더 많은 사용자 수용 Valid/Invalid bit의 사용 Invalid의 의미 사용되지 않는 주소 영역인 경우 페이지가 물리적 메모리에 없는 경우 처음에는 모든 page entry가 invalid로 초기화 address translation 시에 invalid bit이 set되어 있으면 → “Page Fault” 발생 Page fault trap이 발생하여 운영체제로 권한이 넘어간다. Page Fault invalid page를 접근하면 MMU가 trap을 발생시킨다.(page fault trap) Kernel mode로 들어가서 page fault handler가 in..
반효경 운영체제 - 7. 메모리 관리 Logical vs Physical Address Logical Address(Virtual address) 프로세스마다 독립적으로 가지는 주소 공간 각 프로세스마다 0번지부터 시작 CPU가 보는 주소는 logical address임 Physical address 메모리에 실제 올라가는 위치 주소 바인딩 : 주소를 결정하는 것 Symbolic address(변수 이름 등) → Logical Address → Physical Address 주소 바인딩 Compile time binding 물리적 메모리 주소가 컴파일 시 알려짐 시작 위치 변경 시 재컴파일 컴파일러는 절대 코드(absolute code) 생성 실행 파일에 지정된 주소로 메모리에 load해야하므로 매우 비효율적으로 사용하지 않는다. Load ..
반효경 운영체제 - 6. DeadLock 이 포스팅은 반효경 교수님의 운영체제 강의를 수강 후 내용을 정리한 글입니다. Deadlock Deadlock이란? 일련의 프로세스들이 서로가 가진 자원(Resource)을 기다리며 block된 상태이다. Resource 하드웨어 소프트웨어 등을 포함하는 개념 ex) I/O device, CPU cycle, memory, semaphore 등 프로세스가 자원을 사용하는 절차 Request, Allocate, Use, Release Deadlock 발생의 4가지 조건 Mutual Exclusion(상호 배제) 매 순간 하나의 프로세스만이 자원을 사용할 수 있음 No preemption(비선점) 프로세스는 자원을 스스로 내어놓을 뿐 강제로 빼앗기지 않음 Hold and wait(보유대기) 자원을 가진 프로세..
반효경 운영체제 - 5. Process Synchronization 더보기 반효경 교수님의 운영체제 강의를 듣고 내용을 정리한 글입니다. Process Synchronization이란? 데이터의 접근 - 연산 - 결과 저장 과정에 일어나는 순서에 따른 발생할 수 있는 문제, 다시 말하면 Storage box를 여러 개의 execution box가 공유하기 때문에 발생할 수 있는 문제라고 할 수 있다. Race Condition 의미 : 여러 주체가 동시에 하나의 객체에 접근하려고 할 때 원치않는 결과를 얻을 수 있다. 발생 : CPU - Memory 관계, 컴퓨터 내부 - 보조저장장치(디스크), 프로세스 - 프로세스의 주소 공간 등 일반적으로 프로세스는 자신의 주소 공간을 가지므로 문제가 되지 않지만, 시스템콜을 통해 공유 메모리를 사용하는 프로세스의 경우나, 커널 내부..
프로세스와 스레드의 개념과 이해 - CPU 스케줄러 구현하기 (Java) 이번 주제는, CPU 스케줄러를 구현하면서 프로세스와 스레드의 개념을 이해해보는 것입니다. 프로세스와 스레드의 개념에 대해서는 제 블로그의 반효경 운영체제 시리즈에 정리해두었으므로, 이번 포스팅에서는 간단히 개념을 짚어보면서 관련된 구현의 내용을 설명해드리겠습니다. 이번 포스팅에서 구현할 것은 프로세스와 스레드를 관리하는 스케줄러의 프로토 타입입니다. 프로세스, 스레드의 개념을 먼저 학습하고, CPU는 한 개인데 어떻게 수많은 프로세스와 스레드들을 CPU가 처리하는지 궁금하실겁니다. 이러한 프로세스와 스케줄러를 관리하는 스케줄러에 대해서도 알아보겠습니다. 스케줄링 알고리즘에도 여러 종류가 있는데, 그 중에서 한 가지 방법을 골라서 구현에 적용해보았습니다. 다시 본론으로, 프로세스와 스레드에 대해 알아보겠..
반효경 운영체제 - 4. CPU Scheduling CPU Scheduling은 무엇인가? 프로그램 실행은 CPU burst와 I/O burst의 연속이다. CPU burst : CPU만 실행하는 단계 I/O burst : I/O만 실행하는 단계 프로그램의 종류에 따라 CPU burst와 I/O burst의 빈도가 다르다. 사용자가 사용하는 프로그램(Interactive)은 보통 상호작용이 있기에 I/O burst의 빈도가 다르다. 1000*1000 행렬 계산 프로그램 등은 CPU burst의 비중이 높다. 위 그림의 경우 I/O bound job의 빈도는 굉장히 높고, CPU bound job의 빈도는 굉장히 낮았음을 보여준다. I/O가 중간에 끼어들어 CPU를 짧게 쓰는 경우의 job을 I/O bound job이라고 한다. CPU만 오랫동안 쓰는 경우..