본문 바로가기

혼자 공부하는 컴퓨터 구조+운영체제15

15장 파일 시스템 파일과 디렉터리파일파일이란?하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합의미 있고 관련 있는 정보를 모은 논리적 단위모든 파일에는 이름과 파일을 실행하기 위한 정보, 그리고 파일 관련 부가 정보가 있다.이 부가 정보를 속성 또는 메타데이터라고 한다.파일 속성파일 형식, 위치, 크기 등 파일과 관련된 다양한 정보파일 속성과 유형속성 이름 의미유형운영체제가 인지하는 파일의 종류를 나타낸다.크기파일의 현재 크기와 허용 가능한 최대 크기를 나타낸다.보호어떤 사용자가 해당 파일을 읽고, 쓰고, 실행할 수 있는지를 나타낸다.생성 날짜파일이 생성된 날짜를 나타낸다.마지막 접근 날짜파일에 마지막으로 접근한 날짜를 나타낸다.마지막 수정 날짜파일이 마지막으로 수정된 날짜를 나타낸다.생성자파일을 생성한.. 2024. 6. 11.
14장 가상 메모리 14장 가상 메모리프로세스 A가 A의 크기만큼 메모리 주소를 할당 받아서 연속적으로 배치되는데 이렇게 프로세스에 연속적인 메모리 공간을 할당하는 방식을 연속 메모리 할당 방식이라고 한다.이와 같이 프로세스들을 메모리에 연속적으로 할당할 때 무엇을 고려해야하는지, 어떤 잠재적 문제가 있는지 알아보자!14-1 연속 메모리 할당스와핑메모리에 적재된 프로세스들 중에서 현재 실행되지 않는 프로세스가 있을 수 있다.입출력 작업의 요구로 대기 상태가 된 프로세스. 오랫동안 사용되지 않은 프로세스이러한 프로세스들을 임시로 보조기억 장치 일부 영역으로 쫓아내고 생긴 메모리상의 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식이다.프로세스들이 쫓겨나는 보조기억장치의 일부 영역을 스왑 영역현재 실행되지 않는 프로세스가 .. 2024. 6. 10.
13장 교착 상태 13-1 교착 상태란식사하는 철학자 문제동그란 원탁에 다섯 명의 철학자가 앉아 있고, 철학자들 앞에는 맛있는 식사가 있고, 철학자들 사이 사이에는 식사에 필요한 포크가 있다. 그리고 철학자들 앞에 있는 식사는 두 개의 포크로 먹을 수 있는 음식이라 가정하자. 과연 철학자들은 무사히 식사를 마칠 수 있을까? 모든 철학자가 동시에 포크를 집어 식사를 한다면 어떤 철학자도 식사를 할 수 없고 영원히 생각만 하는 상황이 발생할 것이다.이렇게 일어나지 않을 사건을 기다리며 진행을 멈춰 버리는 현상을 교착 상태라고 한다.철학자는 프로세스 혹은 스레드, 포크는 자원, 생각하는 행위를 자원을 기다리는 것에 빗대어 볼 수 있다. 포크는 한 번에 하나의 프로세스 혹은 스레드만 접근할 수 있으니 임계 구역이라고 볼 수 있다.. 2024. 6. 9.
12장 프로세스 동기화 1. 동기화란동기화의 의미협력적으로 실행되는 프로세스들이 아무렇게나 동시에 실행되서는 안되기 때문에 동기화가 필요하다.정보・통신 분야에서의 동기화 : 작업들 사이의 수행 시기를 맞추는 것프로세스들 사이의 수행 시기를 맞추는 것은 무엇을 의미하는가?실행 순서 제어 : 프로세스를 올바른 순서대로 진행하기상호 배제 : 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기첫번째, 실행 순서 제어를 위한 동기화 Writer라는 프로세스와 Reader라는 프로세스가 동시에 실행 중이라고 가정하고, Writer 프로세스는 Book.txt 파일에 값을 저장하는 프로세스이고, Reader 프로세스는 Book.txt 파일에 저장된 값을 읽어 들이는 프로세스라고 가정해보자이때 두 프로세스가 무작정 순서없이 실행.. 2024. 6. 8.
11장 CPU 스케줄링 11-1. CPU 스케줄링 개요CPU 스케줄링: 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것프로세스들에게 현명하게 CPU를 배분하지 못하면 반드시 실행되어야 할 프로세스들이 실행되지 못하거나, 당장 급하지 않은 프로세스들만 주로 실행되는 등 무질서한 상태가 발생할 수 있기 때문에 중요한 문제이다.프로세스 우선순위프로세스를 순서대로 CPU를 이용하게 하는 방법은 좋은 방법이 아니다.그 이유는 우선순위가 다르기 때문이다.우선순위가 높은 프로세스에는 대표적으로 입출력 작업이 많은 프로세스가 있다.프로세스는 실행 상태와 대기 상태를 반복하며 실행된다.비디오 재생이나 디스크 백업 작업을 담당하는 프로세스와 같이 입출력 작업이 많은 프로세스도 있고 (입출력 집중 프로세스),복잡한 수학 연.. 2024. 6. 7.
10장 프로세스와 스레드 10-1 프로세스 개요지금까지는 단순히 ‘실행 중인 프로그램’이라고 표현했지만 이 프로그램을 프로세스라고 한다.프로그램은 실행되기 전까지는 보조 기억장치에 있는 데이터일 뿐이지만 보조 기억장치에 저장된 프로그램을 메모리에 적재하고 실행하는 순간 그 프로그램은 프로세스가 됩니다.이 과정을 프로세스를 생성한다고 표현한다.프로세스 직접 확인하기컴퓨터의 프로세스는 윈도우에서는 작업관리자의 [프로세스] 탭에서 확인이 가능하고 유닉스 체계의 운영체제에서는 ps 명령어로 확인할 수 있다.실제로 컴퓨터를 켜고 확인하면 실행한 프로세스 외 알 수 없는 여러 프로세스가 실행되고 있다.사용자가 보는 앞에서 실행되는 프로세스는 포그라운드 프로세스 , 사용자가 보지 못하는 뒤편에서 실행되는 프로세스는 백그라운드 프로세스 라고 .. 2024. 6. 7.
9장 운영체제 시작하기 09-1 운영체제를 알아야 하는 이유지금까지는 컴퓨터 구조를 학습했다면, 컴퓨터 구조에서 학습한 부품들을 관리하는 특별한 프로그램인 운영체제를 학습해보자.대표적인 운영체제로는 윈도우, macOS, 리눅스, 안드로이드, iOS운영체제란프로그램 실행에 마땅이 필요한 요소를 시스템 자원, 혹은 자원이라고 한다.CPU, 메모리, 보조기억장치, 입출력장치 같은 컴퓨터 부품들은 모두 자원이다.여기서 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램이 바로 운영체제이다.커널 영역 : 항상 컴퓨터가 부팅될 때 메모리 내 따로 적재되어 실행되는 공간. 운영체제도 커널 영역에 적재된다.사용자 영역 : 커널 영역을 제외한 나머지 영역, 사용자가 이용하는 응용 프로그램이 적재되는 .. 2024. 6. 7.
8장 장치 컨트롤러와 장치 드라이버 “장치 컨트롤러”입출력장치는 CPU, 메모리보다 다루기 까다롭다. 크게 두 가지 이유가 있다.첫째, 입출력장치에는 종류가 너무 많다.키보드, 모니터, USB 메모리, CD-ROM, SSD, 마우스, 프린터, 스피커, 마이크 등종류가 많기 때문에 입출력장치와 정보를 주고받는 방식을 규격화하기 어렵다.예를 들어 설명하면 CPU와 메모리는 한국어를 사용하고, 프린터는 영어, 스피커는 일본어, 모니터는 중국어를 사용하는 상황이라고 생각하면 된다.둘째, 일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다.전송률 : 데이터를 얼마나 빨리 교환할 수 있는지 나타내는 지표CPU와 메모리같은 전송률이 높은 장치는 1초에 수많은 데이터를 보낼 수 있는 반면, 키보드나 마우스와 같은 전송률.. 2024. 6. 5.
7장 보조기억장치 07-1. 다양한 보조기억장치대중적인 보조기억장치는 하드 디스크와 플래시 메모리가 있다. 플래시 메모리는 USB, SD 카드, SSD와 같은 저장 장치를 말한다.하드 디스크하드 디스크는 자기적인 방식으로 데이터를 저장하는 보조기억장치이다. 따라서 자기 디스크의 일종으로 지칭하기도 한다.플래터: 동그란 원판 모양으로 하드 디스크에서 데이터가 저장되는 곳플래터는 자기 물질로 덮여 있어 N, S극을 저장하고, 이는 0과 1의 역할을 수행한다.스핀들: 플래터를 회전시키는 구성 요소스핀들이 플래터를 돌리는 속도는 분당 회전수를 나타내는 RPM 단위로 표현된다.헤드: 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소디스크 암: 헤드를 원하는 위치로 이동시키며, 헤드는 디스크 암에 부착되어 있다.일반적으로 여러 겹의 .. 2024. 6. 5.