CS/운영체제

·CS/운영체제
파일 시스템은 무엇일까?       파일 할당 방법 --운영체제는 파일과 디렉터리를 "블록(block)" 단위로 읽고 쓴다.즉, 하나의 파일이 보조기억장치에 저장될 때는 하나 이상의 블록에 걸쳐 저장된다. 하드 디스크에서 사용하는 가장 작은 저장 단위는 "섹터"이지만,운영체제는 하나 이상의 섹터를 블록이라는 단위로 묶은 다음블록 단위로 파일과 디렉터리를 관리한다.(파일 시스템이 모든 섹터를 관리하기에는 개수가 너무 많고 크기도 작기 때문이다.) 위 그림처럼하드 디스크에는 여러 블록들이 존재하고블록 안에 적힌 번호는 블록의 위치를 식별하는 주소라고 생각하면 된다.  파일을 보조기억장치에 할당하는 방법 종류오늘날까지 사용되는 방식은 "불연속 할당"이다.  연속 할당 (Contiguous Allocation)..
·CS/운영체제
요구 페이징은 무엇이며, 페이지와 프레임은 어떻게 관리할까?      요구 페이징 (Demand Paging) --요구 페이징은프로세스를 메모리에 적재할 때 처음부터 모든 페이지를 적재하는 것이 아니라필요한 페이지만을 메모리에 적재하는 기법이다.즉, 실행 요구에 필요한 페이지만 적재하는 기법이다. 가상 메모리를 통해 작은 물리 메모리보다 큰 프로세스도 실행할 수 있지만,그래도 여전히 물리 메모리의 크기는 한정되어 있다.(결국 실행에 필요한 페이지들은 물리 메모리에 적재되어야 하기 때문)운영체제는 프로세스들이 한정된 메모리를 효율적으로 이용하기 위해서기존에 메모리에 적재된 불필요한 페이지를 선별하여 보조기억장치로 내보낼 수 있어야 하고,프로세스들에 적절한 만큼의 프레임을 할당하여 페이지를 할당할 수 있게 ..
·CS/운영체제
페이징은 무엇이며, 어떻게 동작하는 것일까?      가상 메모리 (Virtual Memory) --기본 메모리 연속 할당 방식은"외부 단편화"와 "물리 메모리보다 큰 프로세스는 실행이 불가능하다"는 문제점이 존재한다. 가상 메모리는물리적으로 존재하는 메모리가 아닌 운영체제가 메모리를 관리하는 논리적인 개념으로물리 메모리와 저장 장치(하드 디스크) 사이에서 데이터를 효율적으로 관리하고,프로그램이 물리 메모리의 크기에 제약받지 않고 실행될 수 있도록 도와준다. 즉, 운영체제가 실제 물리적 메모리와 저장 장치(하드 디스크)를 결합하여 프로그램이 마치 더 큰 메모리를 사용할 수 있는 것처럼 보이게 만드는 추상적인 메모리 공간이다. 가상 메모리를 이용하여 연속 메모리 할당의 문제점들을 해결하는가상 메모리 관리 ..
·CS/운영체제
연속 메모리 할당은 무엇이며, 어떻게 운영될까?      연속 메모리 할당 (Contiguous Memory Allocation) --연속 메모리 할당은각 프로세스의 크기만큼 메모리 주소를 할당받아 연속적으로 메모리에 배치하는 구조로프로세스에 연속적인 메모리 공간을 할당하는 방식을 의미한다.  연속 메모리 할당 방식에는 크게 두 가지 문제를 가지고 있다.1. 외부 단편화2. 물리 메모리보다 큰 프로세스는 실행 불가--    스와핑 (Swapping) --스와핑은메모리상의 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식을 의미한다. 메모리에 적재된 프로세스들 중에는현재 실행되지 않는 프로세스, 입출력 작업의 요구로 대기 상태가 된 프로세스 등오랫동안 사용되지 않은 프로세스들을 메모리에서 (스왑 영역으..
·CS/운영체제
교착 상태는 무엇이며 어떻게 해결할까?      교착 상태 (Deadlock) --교착 상태는일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상을 말한다. --    자원 할당 그래프 (Resource-Allocation Gragh) --자원 할당 그래프는어떤 프로세스가 어떤 자원을 사용하고 있고, 어떤 자원을 기다리고 있는지를 표현하는 간단한 그래프다. 프로세스  :  원형자원  :  사각형사용 가능한 자원의 수  :  점프로세스가 어떤 자원을 할당받아 사용 중  :  자원(점)에서 프로세스(원형)를 향한 화살표프로세스가 어떤 자원을 기다리는 중  :  프로세스(원형)에서 자원(점)을 향한 화살표 --    교착 상태 발생 조건 --교상 상태가 발생하는 조건 4가지상호 배제점유와 대기비선점원형 대기..
·CS/운영체제
동기화는 무엇일까?      프로세스 동기화 (Process Synchronization) --운영체제에서 여러 프로세스가 공유 자원을 함께 사용할 때,경쟁을 방지하고 일관성을 유지하며 공유하기 위한 메커니즘이다. 즉, 프로세스들 사이의 수행 시기를 맞추는 것을 의미한다.실행 순서 제어  :  프로세스를 올바른 순서대로 실행한다.상호 배제  :  동시에 접근하면 안 되는 자원에 하나의 프로세스만 접근하도록 한다.프로세스뿐만 아니라 스레드도 동기화 대상이다.정확히는 실행의 흐름을 갖는 모든 것이 동기화의 대상이다.  실행 순서 제어를 위한 동기화프로세스 A와 프로세스 B가 존재한다고 가정하자.프로세스 A  :  test.txt파일에 값을 저장하는 프로세스프로세스 B  :  test.txt파일에 값을 읽는 ..
·CS/운영체제
CPU 스케줄링 알고리즘은 어떤 것들이 있을까?      CPU 스케줄링 알고리즘 --CPU 스케줄링 알고리즘은운영체제가 CPU의 자원을 여러 프로세스나 스레드에게 효율적으로 분배하기 위해 사용되는 알고리즘이다. 대표적인 CPU 스케줄링 알고리즘선입 선처리 스케줄링 (FCFS, First Come First Served)최단 작업 우선 스케줄링 (SJF, Shortest Job First)라운드 로빈 스케줄링 (Round Robin)최소 잔여 시간 우선 스케줄링 (SRT, Shortest Remaining Time)우선순위 스케줄링 (Priority)다단계 큐 스케줄링 (Multilevel Queue)다단계 피드백 큐 스케줄링 (Multilevel Feedback Queue)--    선입 선처리 스케줄..
·CS/운영체제
CPU 스케줄링은 무엇일까?      CPU 스케줄링 --모든 프로세스는 운영체제로부터 자원을 할당받아 실행된다.프로세스마다 필요로 하는 자원은 각기 다르지만, 공통으로 사용하는 자원은 CPU다. 모든 프로세스들은 CPU가 필요하고 먼저 CPU를 할당받아 사용하고 싶어 한다.(CPU를 할당받아야 해당 프로세스의 작업을 시작할 수 있기 때문이다.) 그래서 운영체제게 프로세스들에게 공정하고 합리적으로 CPU의 자원을 배분하는 것을 "CPU 스케줄링"이라고 한다. CPU 스케줄링은컴퓨터의 성능과도 직결되는 부분이라 매우 중요한 역할이다.CPU를 현명하게 배분하지 못하면반드시 실행되어야 하는 프로세스들이 실행하지 못하거나,급하지 않은 프로세스들로만 주로 실행되는 등무질서한 상태가 발생할 수 있다.--    프로..
아-니지
'CS/운영체제' 카테고리의 글 목록