Computer Science 15

Chapter15: 파일 시스템

파일파일은 보조기억장치에 저장된 관련 정보의 집합이다.그리고 파일 안에는 부가 정보들이 들어 있는데, 이를 속성(attribute), 메타데이터(metadata)라고 한다.파일 속성과 유형유형 : 운영체제가 인지하는 파일의 종류를 나타낸다.이름 : 파일에 지정된 이름, 일반적으로 문자열이다.크기 : 파일의 현재 크기(Kb, Mb, Gb 등)를 지정하고, 파일에 허용되는 최대 크기도 지정할 수 있다.보호 : 액세스 제어(파일을 누가 읽고, 편집하고, 쓰고, 실행할 수 있는지에 대한 권한)에 대한 정보를 지정한다.시간, 날짜 및 사용자 식별 : 파일이 생성된 날짜와 시간, 마지막으로 수정된 날짜와 시간, 어떤 사용자가 생성하고 수정했는지 등을 알려준다.위치 : 장치에서 파일의 위치(디렉토리 경로)를 지정한다..

Chapter14: 메모리 관리

연속 메모리 할당프로세스에 연속적인 메모리 공간을 할당하는 방식을 연속 메모리 할당 방식이라고 한다.스와핑(swapping)메모리에서 사용되지 않는 일부 프로세스를 보조기억장치로 내보내고 실행할 프로세스를 메모리에 들여보내는 메모리 관리 기법이다. 스와핑을 이용하면 프로세스들이 요구하는 메모리 주소 공간의 크기가 실제 메모리 크기보다 큰 경우에도 프로세스들을 동시 실행할 수 있다.스왑 영역(swap space) 보조기억장치의 일부 영역 스왑 아웃(swap-out) 실행되지 않는 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것 스왑 인(swap-in) 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨오는 것 메모리 할당비어있는 메모리 공간에 프로세스를 연속적으로 할당하는 방식에 대표적으로 세 가지가 있다.최..

Chapter13: 교착상태

식사하는 철학자 문제(dining philosophers problem)이 문제는 교착 상태를 설명하기 위한 아주 고전적이고 재미있는 문제 상황이다.아래 그림처럼 다섯 명의 철학자, 다섯 개의 포크, 다섯 개의 음식이 원형 테이블에 있을 때 아래와 같은 순서로 식사를 한다.철학자는 생각을 하다가 왼쪽 포크가 사용 가능하면 집어든다.철학자는 생각을 하다가 오른쪽 포크가 사용 가능하면 집어든다.왼쪽과 오른쪽 포크를 모두 집어들면 정해진 시간동안 식사를 한다.식사 시간이 끝나면 오른쪽 포크를 내려놓는다.오른쪽 포크를 내려놓은 뒤 왼쪽 포크를 내려놓는다.다시 1번부터 반복한다.만약, 모든 철학자가 왼쪽 포크를 집어들면 모두가 오른쪽 포크를 집어들 수 없다.결국, 다른 철학자가 포크를 내려놓을 때까지 기다린다.이..

Chapter12: 프로세스 동기화

동기화(synchronization)의 의미동시다발적으로 실행되는 프로세스들은 공동의 목적을 올바르게 수행하기 위해 서로 협력하며 영향을 주고 받는다.이렇게 협력하여 실행되는 프로세스들은 실행 순서와 자원의 일관성을 보장하기 위해 반드시 동기화 되어야 한다. 결국, 동기화라는 것은 특정 자원에 접근할 때 한 개의 프로세스만 접근하게 하거나, 프로세스를 올바른 순서대로 실행하는 것을 말한다. 프로세스 동기화는 프로세스들 사이의 수행 시기를 맞추는 것이다. 수행 시기에 포함되는 것은 다음과 같다.실행 순서 제어 : 프로세스를 올바른 순서대로 실행함.상호 배제(mutual exclusion) : 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하도록 함. 동시에 접근해서는 안 되는 자원에 동시에 접근하..

Chapter11: CPU 스케줄링

CPU 스케줄링 개요운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것을 CPU 스케줄링(CPU scheduling)이라고 한다.프로세스들에게 현명하게 CPU를 배분하는 것은 컴퓨터 성능과도 직결되는 중요한 문제이다.프로세스 우선순위프로세스들에게 공정하게 CPU를 배분하려면 우선순위가 높은 프로세스를 빨리 처리하면 된다.프로세스 종류마다 입출력장치를 이용하는 시간과 CPU를 이용하는 시간의 양에 차이가 있다.입출력 집중 프로세스(I/O bound process) 비디오 재생이나 디스크 백업 작업과 같은 입출력이 많은 프로세스 CPU 집중 프로세스(CPU bound process) 복잡한 수학 연산, 컴파일, 그래픽 처리 작업과 같은 CPU 작업이 많은 프로세스 💡 CPU 버스트와 입..

Chapter10: 프로세스와 스레드

프로세스 개요프로세스(Process)란 디스크(보조기억장치)에 있던 프로그램을 사용하기 위해 운영체제가 메모리(주기억장치)로 옮긴 것을 의미한다. 보조기억장치에 저장된 프로그램을 메모리에 적재하고 실행하는 순간 그 프로그램은 프로세스가 된다. 그리고 이 과정을 ‘프로세스를 생성한다’라고 표현한다.프로세스 직접 확인하기포그라운드 프로세스(foreground process)사용자가 보는 앞에서 실행되는 프로세스이다.백그라운드 프로세스(background process)사용자가 보지 못하는 뒤편에서 실행되는 프로세스이다.데몬(daemon)사용자와 상호작용하지 않고 그저 묵묵히 정해진 일만 수행하는 백그라운드 프로세스이다.유닉스 체계의 운영체제에서는 데몬(daemon) 이라고 부르며, 윈도우 운영체제에서는 서비..

Chapter09: 운영체제

운영체제를 알아야 하는 이유운영체제란모든 프로그램은 하드웨어를 필요로 한다. 계산하는 프로그램은 CPU가 필요하고 이미지를 저장하는 프로그램은 하드 디스크가 필요하다. 이때, 프로그램 실행에 마땅히 필요한 요소들을 시스템 자원 혹은 자원이라고 한다. 그리고 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 프로그램이 운영체제(operating system)이다. 운영체제는 매우 특별한 프로그램이기 때문에 컴퓨터가 부팅될 때 메모리 내 커널 영역(kernel sapce)이라는 공간에 따로 적재되어 실행된다. 커널 영역을 제외한 사용자가 이용하는 응용 프로그램이 적재되는 영역을 사용자 영역(user space)라고 한다. 따라서, 운영체제는 커널 영역에 적재되어 사용자 영역에 적..

Chapter08: 입출력장치

장치 컨트롤러와 장치 드라이버장치 컨트롤러(device controller)장치 컨트롤러는 CPU, 메모리보다 다루기 더 까다롭다. 그 이유는 크게 두 가지가 있다.입출력장치에는 종류가 너무나도 많다.일반적으로 CPU와 메모리의 데이터 전송률을 높지만 입출력장치의 데이터 전송률은 낮다이러한 이유로 입출력장치는 컴퓨터에 직접 연결되지 않고 장치 컨트롤러라는 하드웨어를 통해 연결된다.장치 컨트롤러는 입출력 제어기(I/O Controller), 입출력 모듈(I/O module) 등으로 다양하게 불린다.모든 입출력장치는 각자의 장치 컨트롤러를 통해 컴퓨터 내부와 정보를 주고 받고, 장치 컨트롤러는 하나 이상의 입출력장치와 연결되어 있다.장치 컨트롤러가 하는 역할은 다음과 같다.CPU와 입출력장치 간의 통신 중개..

Chapter07: 보조기억장치

다양한 보조기억장치하드디스크(HDD ; Hard Dist Drive)하드디스크는 자기적인 방식으로 데이터를 저장하는 보조기억장치이며, 자기 디스크(magentic disk)라고 지칭하기도 한다.보조저장장치에는 하드 디스크와 플래시 메모리가 있다.하드 디스크 구성 요소플래터(platter) : 실질적으로 데이터가 저장되는 곳이다. CD나 LP과 비슷하게 생겼다.스핀들(spindle) : 플래터를 고속으로 회전시키는 역할을 담당한다. 플래터를 돌리는 속도는 분당 회전수인 RPM(Revolution Per Minute) 단위로 표기한다.헤드(head) : 플래터를 대상으로 데이터를 읽고 쓰는 역할을 담당한다.헤드 암(disk arm) : 헤드가 원하는 위치로 이동시켜주는 역할을 담당한다.플래터는 트랙(trac..

Chapter06: 메모리와 캐시 메모리

RAM의 특징과 종류RAM의 특징RAM에는 실행할 프로그램의 명령어와 데이터가 저장된다.RAM은 전원을 끄면 RAM에 저장된 명령어와 데이터가 모두 날아가는 휘발성 저장 장치(volatile memory)다.전원이 꺼져도 저장된 내용을 유지하는 저장 장치는 보조기억장치이며 비휘발성 저장 장치(non-volatile memory)라고 한다.💡 CPU는 보조기억장치에 직접 접근하지 못한다.그래서 일반적으로 보조기억장치에 ‘보관할 대상’을 저장하고 RAM에는 ‘실행할 대상’을 저장한다.CPU는 실행하고 싶은 프로그램이 보조기억장치에 있다면 RAM으로 복사하여 저장한 뒤 실행한다.RAM의 용량과 성능RAM 용량이 크면 어떤 점이 좋을까?CPU에서 실행할 프로그램이 보조기억장치에 있다면, RAM으로 가지고 온다..