inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[인프런워밍업클럽] 3주차 발자국 미션

노을
0

운영체제

메모리

레지스터 : 속도 빠름, 용량 작음, 가격 비쌈

레지스터와 메인메모리 사이에는 캐시가 있음

캐시 : CPU가 사용하는 메모리로 굉장히 빠름, 메모리는 느림, 미리 가져온 데이터를 저장하는 곳, 성능을 이유로 여러개를 둠

메인메모리: 실제 운영체제와 다른 프로세스들이 올라가는 공간, 휘발성메모리 , 속도빠름, 실행중인 프로그램만 올림

보조저장장치 : 비휘발성 메모리, 속도 느림, 용량 큼, 가격 쌈

 

메모리와 주소

메인메모리(메모리)

운영체제는 메모리를 관리하기 위해 1바이트 크기로 구역을 나누고 숫자를 매김

숫자 → 주소

절대주소(물리 주소), 상대주소(논리 주소)

재배치 레지스터에는 프로그램의 시작 주소가 저장 되어있음

 

메모리할당방식

가변분할(연속 메모리 할당),세그멘테이션

프로세스가 크면 메모리도 크게 할당

장점: 메모리의 연속된 공간에 할당되기 때문에 더 크게 할당되서 낭비되는 공간인 내부단편화가 없음

단점: 외부단편화가 발생

고정 분할 방식(비연속 메모리 할당), 페이징

프로세스 크기와 상관없이 메모리를 할당

장점: 구현 간단, 오버헤드가 작음

단점: 작은 프로세스도 큰 영역에 할당되서 공간이 낭비되는 내부 단편화 발생

가상메모리

가상메모리의 크기

가변분할방식(세그멘테이션) - 페이징 혼용

고정분할방식(페이징)

가상 주소는 메모리나 스왑영역 한 곳에 위치

메모리 관리자는 가상주소와 물리주소를 1대1 맵핑

 

세그멘테이션

함수, 모듈로 구성

외부 단편화 문제가 있어서 해결하기 위해서 고안

프로세스마다 크기가 달라 바운드 어드레스를 가지고 있음

페이징(고정분할)

메모리를 할당할 때 정해진 크기의 페이지로 나눔, 모든 페이지의 크기가 같기 때문에 관리가 쉬움

페이지 : 논리주소 공간은 일정한 크기로 균일하게 나눔

모든 페이지의 크기가 동일해서 크기를 표현하는 바운드 어드레스는 필요하지 않음

외부단편화 x, 내부 단편화 O

내부단편화: 정해진 크기의 페이징보다 프로세스의 정보가 작으면 그만큼 공간이 낭비

 

입출력장치

그래픽카드, 하드디스크, SSD, 키보드, 마우스 등

캐릭터 디바이스

블록디바이스

하드디스크

장점: 기계적으로 헤드를 움직여 속도가 많이 느리고 소음도 낮음

단점: 굉장히 느림

플래시 디스크

장점: 빠르고 조용함, 안전

단점: 특정한 지점에 데이터를 썼다면 덮어 쓰기가 불가능함, 똑같은 지점에 데이터를 쓰러면 기존에 있던 데이터를 지우고 새로 써야 함, 지우기 가능한 횟수가 정해져 있음, 계속 반복하다보면 망가져서 사용할 수 없음

 

자료구조와 알고리즘

버블정렬

선택정렬

삽입정렬

병합정렬

퀵정렬

 

회고

벌써 3주의 시간이 지나갔다.. 아직도 부족한 부분이 많아서 복습을 더 하고 다시 강의를 보려고 한다

그리고 운영체제 과목에 대한 흥미를 느껴 오늘 도서관에서 '쉽게 배우는 운영체제' 책을 빌려왔다

빌린 책과 함께 강의를 다시 들으며 복습하고 나만의 것으로 만들기 위해서 노력해야겠다

 

알고리즘 · 자료구조

답변 0