본문 바로가기

카테고리 없음

혼자 공부하는 컴퓨터구조 + 운영체제 14~15Chapter 요약정리

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

 
혼자 공부하는 컴퓨터 구조+운영체제
이 책은 독학으로 컴퓨터 구조와 운영체제를 배우는 입문자가 ‘꼭 필요한 내용을 제대로 학습’할 수 있도록 구성했다. 뭘 모르는지조차 모르는 입문자의 막연한 마음에 십분 공감하여 과외 선생님이 알려주듯 친절하게, 핵심 내용만 콕콕 집어 준다. 〈컴푸터 구조〉편에서는 컴퓨터를 이루고 있는 부품들과 각 부품의 역할을 알아본다. 또한 컴퓨터 내부의 구조와 작동법을 이해하고, 컴퓨터가 어떻게 명령어를 처리하는지 학습한다. 〈운영체제〉편에서는 운영체제의 필요성을 배운 뒤 앞서 배운 컴퓨터의 부품들을 운영체제가 어떻게 사용하는지 전체 과정을 살펴본다. ‘전공서가 너무 어려워서 쉽게 배우고 싶을 때’, ‘개발자가 되고 싶은데 뭐부터 봐야 하는지 모를 때’ ‘기술 면접을 제대로 준비해야 할 때’ 다른 입문서에서는 알려주지 않았던 진짜 컴퓨터 공학 지식을 〈혼자 공부하는 컴퓨터 구조+운영체제〉에서 만나 보자! 42명의 베타리더와 함께 입문자에게 꼭 맞는 난이도, 분량, 학습 요소 등을 적극 반영했다. 어려운 용어와 개념은 한 번 더 풀어 쓰고, 적절한 예시와 이해하기 쉬운 그림으로 누구나 이해할 수 있도록 구성했다. 또한 일상 소재를 활용한 비유를 활용하여 어렵게 느껴질 수 있는 컴퓨터 구조와 운영체제를 머릿속에 직접 그리듯이 설명해 준다. ‘혼자 공부해 본’ 여러 입문자의 초심과 눈높이가 책 곳곳에 반영된 것이 이 책의 가장 큰 장점이다.
저자
강민철
출판
한빛미디어
출판일
2022.08.16

 

안녕하세요 !
혼공단 11기로 선정 되어

공부하게 된 박지영입니다 🙂

매주 1회 혼자 공부하는 컴퓨터구조 + 운영체제 요약을 올리고 있습니다.

파이썬(코딩자율학습단), C언어(빡공단) 등 많은 프로그래밍 요약을 올리고 있을거니
다른 글도 많은 관심 부탁드립니다 🥰

 

Chapter 14 가상 메모리

14-1 연속 메모리 할당

프로세스에 연속적인 메모리 공간을 할당하는 방식 : 연속 메모리 할당 방식

 

프로세스들을 임시로 보조기억장치 일부 영역으로 쫒아내고,

그렇게 해서 생긴 메모리상의 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식 : 스와핑

 

이때, 프로세스들이 쫒겨나는 보조기억장치의 일부 영역 : 스왑영역

현재 실행되지 않는 프로세스가 메모리에서 스왑영역으로 옮겨지는 것을 스왑 아웃,

반대로 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨오는 것을 스왑 인

 

메모리 할당

비어 있는 메모리 공간에 프로세스를 연속적으로 할당하는 방식의 대표적은 3가지 방식.

1. 최초 적합 : 운영체제가 메모리 내의 빈 공간을 순서대로 검색하다가 적재할 수 있는 발견하면 그 공간에 프로세스를 배치하는 방식

2. 최적 적합 : 운영체제가 빈 공간을 모두 검색해 본 후, 프로세스가 적재될 수 있는 공간 중 가장 작은 공간에 프로세스를 배치는 방식

3. 최악 적합 : 운영체제가 빈 공간을 모두 검색해 본 후, 프로세스가 적재될 수 있는 공간 중 가장 큰 공간에 프로세스를 배치하는 방식

 

연속 메모리 할당은 외부 단편화라는 문제가 있다.

외부 단편화 : 프로세스를 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상

 

외부 단편화를 해결 할 수 있는 대표적인 방안으로 메모리를 압축하는 방법이 있다.

14-2 페이징을 통한 가상 메모리 관리

가상 메모리 : 실행하고자 하는 프로그램을 일부만 메모리에 적재하여 실제 물리 메모리 크기보다 더 큰 프로세스를 실행할 수 있게 하는 기술

가상 메모리의 방법은 크게 페이징, 세그멘테이션이 있다.

 

페이징메모리의 물리 주소 공간을 프레임 단위로 자르고,

프로세스의 논리 주소 공간을 페이지 단위로 자른 뒤 각 페이지를 프레임에 할당하는 가상 메모리 관리 기법이다.

페이징 시스템에서의 스왑 아웃은 페이지 아웃, 스왑 인은 페이지 인이라고 부르기도 한다.

 

페이징 시스템은 프로세스가 비록 (실제 메모리 내의 주소인) 물리 주소에 불연속적으로 배치되더라도 (CPU가 바라보는 주소인) 논리 주소에는 연속적으로 배치되도록 페이지 테이블을 이용합니다. 그리고 페이지 번호를 이용해 페이지가 적재된 프레임을 찾을 수 있다.

 

페이징은 외부 단편화 문제를 해결할 수 있지만, 내부 단편화 문제를 야기할 수 있음그리고 CPU 내의 페이지 테이블 베이스 레지스터는 각 프로세스의 페이지 테이블이 적재된 주소를 가리키고 있다.

 

TLB : 페이지 테이블의 캐시 메모리CPU가 발생한 논리 주소에 대한 페이지 번호가 TLB에 있을 경우 : TLB 히트페이지 번호가 TLB에 없을 경우 어쩔 수 없이 페이지가 적재된 프레임을 알기 위해 메모리의 내의 페이지 테이블에 접근하는 수밖에 없다.이것을 TLB 미스

 

페이징 시스템에선느 모든 논리 주소가 기본적으로 페이지 번호와 변위로 이루어져 있습니다.

 

페이지 테이블의 각 엔트리, 다시 말해 페이지 테이블의 각각의 행들의 페이지 테이블 엔트리유효 비트 : 현재 해당 페이지에 접근 가능한지 여부 알려줌

-> 페이지 폴트라는 에외가 발생할수도 있다

 

보호 비트 : 페이지 보호 기능을 위해 존재하는 비트

참조 비트 : 페이지에 접근한 적이 있는지 나타냄

수정 비트(더티비트) : 해당 페이지에 데이터를 쓴 적이 있는지 없는지 수정 여부 알려줌

 

페이징의 이점 - 쓰기 시 복사

 

프로세스를 이루는 모든 페이지 테이블 엔트리를 항상 메모리에 유지하지 않을 수 있는 방법 : 계층적 페이징

계층적 페이징은 펭이지 테이블을 페이징하여 여러 단계의 페이지를 두는 방식 : 다단계 페이지 테이블

14-3 페이지 교체와 프레임 할당

프로세스를 메모리에 적재할 때 처음부터 모든 페이지에 적재하지 않고 필요한 페이지만을 메모리에 적재하는 기법 : 요구 페이징

 

순수 요구 페이징 기법

 

요구 페이징 시스템이 안정적으로 작동하려면 필연적으로 다음 두 가지인 페이지 교체와 프레임 할당을 해결해야합니다.

쫒아낼 페이지를 결정하는 방법은 페이지 교체 알고리즘

페이지 교체 알고리즘을 이해하려면 페이지 폴트 횟수, 페이지 참조열에 대해 알아야 합니다.

 

FIFO 페이지 교체 알고리즘 : 가장 단순한 방법으로 메모리에 가장 먼저 올라온 페이지부터 내쫒는 방식

2차 기회 페이지 교체 알고리즘 : 부작용을 어느 정도 개선한 FIFO 페이지 교체 알고리즘의 변형입니다.

이름 그대로 한 번 더 기회를 주는 알고리즘.

 

LPU 페이지 교체 알고리즘 : 가장 오랫동안 사용 되지 않은 페이지를 교체하는 알고리즘

프로세스가 실제 실행되는 시간보다 페이징에 더 많은 시간을 소요하여 성능이 저해되는 문제를 스래싱

 

메모리에서 동시 실행되는 프로세스의 수를 멀티프로그래밍의 정보라고 합니다.

 

프레임 할당 방식엔 균등할당, 비례 할당

균등할당 : 모든 프로세스에 동일한 프레임을 배분하는 방식

비례할당 : 프로세스 크기에 따라 프레임을 배분하는 방식

( 이 방식들은 정적 할당 방식 )

 

프로세스를 실행하는 과정에서 배분할 프레임을 결정하는 방식에는 크게 작업 집합 모델을 사용하는 방식과 페이지 폴트 빈도를 사용하는 방식

이 두 개 방식은 프로세스의 실행을 보고 할당할 프레임 수를 결정한다는 점에서 동적 할당 방식이라고 한다.

 

실행 중인 프로세스가 일정 시간 동안 참조한 페이지의 집합 : 작업 집합

 

Chapter 15 파일 시스템

15-1 파일과 디렉터리

파일 : 하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합

파일 관련 부가 정보는 속성 or 메타데이터라고 부릅니다.

 

이러한 정보가 파일속성입니다.

 

< 파일 속성 >

유형, 크기, 보호, 생성 날짜, 마지막 접근 날짜, 마지막 수정 날짜, 생성자, 소유자, 위치

(보호 : 사용자가 해당 파일을 읽고 실행 가능한지)

 

< 파일 유형 >

파일 유형은 운영체제가 인식하는 파일 종류를 나타냅니다.

파일 이름 뒤에 붙는 확장자를 이용하는 것

파일 유형 대표적인 확장자
실행 파일 없는 경우, exe, com, bin
목적 파일 obj, o
소스 코드 파일 c, cpp, cc, java, asm, py
워드 프로세서 파일 xml, rtf, doc, docx
라이브러리 파일 lib, a, so, dll
멀티미디어 파일 mpeg, mov, mp3, mp4, avi
백업/보관 파일 rar, aip, tar

 

파일들을 일목요연하게 관리하기 위해 디렉터리를 이용할 수 있다.

윈도우 운영체제에서는 디렉터리를 폴더라고 부릅니다.

 

모든 파일이 하나의 디렉터리 아래에 있는 것을 1단계 디렉터리

-> 더 발전된 것은 트리 구조 디렉터리

 

루트 디렉터리 ( 슬래시 (/) 로 표현 )

 

경로 : 디렉터리를 이용해 파일 위치, 나아가 파일 이름을 특정 짓는 정보

모든 파일은 루트 디렉터리에서 자기 자신까지 이르는 고유한 경로를 가지고 있고, 이러한 경로를 절대 경로라고 한다.

현재 디렉터리부터 시작하는 경로를 상대 경로라고 한다.

15-2 파일 시스템

보조 기억 장치를 사용하려면 파티션을 나누는 작업(파티셔닝)과 포맷 잡업(포맷팅)을 거쳐야 합니다.

 

파티셔닝 : 저장 장치의 논리적인 영역을 구획하는 작업을 의미

서랍 칸막이 영역을 나누는 듯한 것이 파티셔닝 !

 

파티셔닝 작업을 통해 나눈어진 영역 하나하나를 파티션이라고 합니다.

 

포매팅 : 파일 시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할 것인지를 결정하고, 새로운 데이터를 쓸 준비를 하는 작업

 

포매팅의 종류엔 저수준 포매팅, 논리적 포매팅이 있습니다.

포매팅할 때 파일 시스템이 결정된다는 것을 알 수 있다.

 

운영체제는 파일과 디렉터리를 블록단위로 읽고 씁니다.

 

파일의 보조기억장치에 할당하는 방법에는 두가지가 있다.

연속 할당과 불연속 할당이 있고, 불연속 할당에는 연결 할당, 색인 할당이 있다.

 

연속할당 : 가장 단순한 방식이고, 보조기억장치 내 연속적인 블록에 파일을 할당하는 방식

연속 할당 방식은 파일을 그저 연속적으로 저장하는 방식이기에 구현이 단순하다는 장점이 있지만, 외부 단편화를 야기한다는 문제가 있다.

 

연속 할당의 문제를 해결할 수 있는 방식 : 연결 할당

연결 할당은 각 블록 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 할당하는 방식

 

색인 할당은 파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아 관리하는 방식

색인 할당을 사용하는 파일 시스템에서는 디렉터리 엔트리에 파일 이름과 더불어 색인 블록 주소를 명시

 

파일 시스템 크게 두가지 입니다.

하나는 USB 메모리, SD 카드 등의 저용량 저장 장치에서 사용되는 FAT 파일 시스템이고,

다른 하나는 유닉스 계열 운영체제에서 사용되는 유닉스 파일 시스템입니다.

 

각 블록에 포함된 다음 블록의 주소들을 한데 모아 테이블 형태로 관리하면 앞서 언급한 단점들을 상당 부분 해소할 수 있습니다.

이러한 테이블을 파일 할당 테이블(FAT)

FAT을 이용하는 파일 시스템이 바로 FAT 파일 시스템

 

( 윈도우에서 블로깅라는 용어 대신 클러스터라는 용어를 사용 )

 

파일 시스템은 색인 할당 기반의 유닉스 파일 시스템 (i-node)

파일 데이터가 저장된 블록 : 직접 블록

단일 간접 블록이란 파일 데이터가 저장된 블록이 아닌 파일 데이터를 저장한 블록 주소가 저장된 블록

이중 간접 블록이란 데이터 블록 주소를 저장하는 블록 주소가 저장된 블록

삼중 간접 블록이란 이중 간적 블록 주소가 저장된 블록

 

윈도우 운영체제에서 사용되는 NT 파일 시스템(NTFS), 리눅스 운영체제에서는 사용되는 ext파일 시스템 등이 있습니다.

 

파일 시스템을 변경하는 도중에 이러한 상황(시스템 크래시)이 발생하면 파일 시스템이 훼손될 수 있습니다.

 

저널링 기법을 이용하는 저널링 파일 시스템.

저널링 기법이란 자업 로그를 통해 시스템 크래시가 발생했을 때 빠르게 복구하기 위한 방법

 

마운트라는 기법도 있다.

 

이렇게 혼공단 컴퓨터구조 + 운영체제 6주차 14~15파트 요약 정리를 마쳤습니다.

이제 미션을 해볼까요??

6주차
(2/5 ~ 2/12)
Chapter 14 ~ 15 p. 400의 확인 문제 1번 풀고 인증하기 Ch.14(14-3) 프로세스가 사용할 수 있는 프레임이 3개 있고, 페이지 참조열이 '2313523423' 일 때 LRU 페이지 교체 알고리즘으로 이 페이지를 참조한다면 몇 번의 페이지 폴트가 발생하는지 풀어보기

 

기본 미션 인증

 

최초적합, 최악접합, 최적적합 순 입니다.

 

이제 혼공단의 마지막이 끝났습니다.

내일은 회고의 글로 돌아오겠습니다!