[운영체제(OS)] 디스크 구조와 디스크 스케줄링
2022. 3. 11. 23:46
CS/운영체제
0.🚶들어가며 이번 글에서는 저장장치의 대표적인 예인 디스크에 대해 알아볼 예정입니다. 디스크의 구조는 어떠한지, 디스크 스케줄링은 무엇인지에 대한 내용을 다뤄보도록 하겠습니다. 1.⚪디스크의 구조 위 그림은 디스크의 구조를 보여줍니다. 몇 가지에 대해 알아보도록 하겠습니다. 1) 플래터 플래터는 표면의 자성체와 자기를 이용해 0과 1의 데이터를 저장합니다. 2) 섹터와 블록 섹터는 하드 디스크의 가장 작은 저장 단위입니다. 하나의 섹터에는 한 덩어리의 데이터가 저장되고 이들이 모여 플래터가 됩니다. 블록은 논리적인 개념에서의 가장 작은 단위입니다. 하드디스크와 컴퓨터 사이에 데이터를 전송하는 단위이고 메모리에서는 블록마다 주소가 배정됩니다. 정리하면 하드 디스크 입장에서는 섹터가 가장 작은 저장 단위이..
[운영체제(OS)] 입출력 시스템 개요
2022. 3. 8. 21:36
CS/운영체제
0.🚶들어가며 이번 글에서는 입출력 시스템의 개요를 소개해보려 합니다. 입출력 장치는 무엇이 있는지, 컴퓨터 주변 장치는 무엇인지, 주변장치와 필수 장치 사이의 통신은 어떻게 이루어지는지 등에 대해 알아보도록 하겠습니다. 1.💽주변장치에 대하여 컴퓨터는 필수 장치인 CPU와 메모리, 주변장치인 입출력 장치와 저장장치로 구성됩니다. 또한 각 장치는 메인보드에 있는 버스로 연결되죠. 오늘 알아볼 내용은 대부분 주변장치에 대한 이야기입니다. 주변장치는 데이터 전송 속도에 따라 아래 두 가지로 구분됩니다. 1) 저속 주변장치 메모리와 주변장치 사이에 오고 가는 데이터 양이 적어 데이터 전송률이 낮은 장치입니다. 키보드가 대표적인 예입니다. 2) 고속 주변장치 메모리와 주변장치 사이에 오고 가는 데이터 양이 많아..
[운영체제(OS)] 가상 메모리 - (5) 스레싱과 프레임 할당
2022. 3. 3. 03:14
CS/운영체제
0.🚶들어가며 이전 글에서 페이지 교체 알고리즘에 대해 알아보았습니다. 이번 글에서는 스레싱이 무엇인지, 프로세스에게 프레임 할당하는 방식은 어떤 것이 있는지에 대해 알아보도록 하겠습니다. 1.📖스레싱 가상 메모리 시스템에서는 프로세스들이 프레임을 할당받습니다. 만약 많은 수의 프로세스들이 실행 중이라 각각 프로세스들에게 충분한 수의 프레임을 할당하지 못한다면 어떻게 될까요? 페이지 부재가 많이 발생하여 계속해 스왑 영역을 다녀오는 상황이 생길 것입니다. 이런 상황이 벌어지면 하드디스크 입출력이 너무 잦아져 작업이 멈춘 것 같은 상태가 되어버립니다. 이를 스레싱이라고 합니다. 스레싱은 메모리의 크기가 일정할 경우 멀티프로그래밍 정도에 밀접한 관계가 있습니다. 멀티 프로그래밍 정도가 너무 높으면 스레싱이 ..
[운영체제(OS)] 가상 메모리 - (4) 페이지 교체 알고리즘
2022. 3. 3. 01:08
CS/운영체제
0.🚶들어가며 [운영체제(OS)] 가상 메모리 - (3) 요구 페이징(Demand Paging) 0.🚶들어가며 지난 글들에서 살펴보았던 페이징과 세그멘테이션 기법은 MMU의 역할 중 배치(Placement)에 대한 내용이었습니다. 이번 글에서는 가져오기(Fetch) 정책에 대한 내용을 다뤄보도록 하겠 kjhoon0330.tistory.com 지난 글에서는 요구 페이징, 페이지 부재, 지역성 등에 대한 개념을 살펴보았습니다. 이번 글에서는 페이지 부재를 최소화하기 위해서 사용하는 페이지 교체 알고리즘의 개념과 종류를 알아보도록 하겠습니다. 1.📖페이지 교체 알고리즘이란? 프로세스가 요구한 페이지가 메모리에 없을 경우 페이지 부재가 발생합니다. 만약 메모리까지 꽉 차있는 상황이라면 대상 페이지를 정하고 이를..
[운영체제(OS)] 가상 메모리 - (3) 요구 페이징(Demand Paging)
2022. 3. 2. 21:22
CS/운영체제
0.🚶들어가며 지난 글들에서 살펴보았던 페이징과 세그멘테이션 기법은 MMU의 역할 중 배치(Placement)에 대한 내용이었습니다. 이번 글에서는 가져오기(Fetch) 정책에 대한 내용을 다뤄보도록 하겠습니다. 1.📖Demand Paging (요구 페이징)이란? 이전 글에서도 살펴보았듯 프로세스는 자신이 필요한 모든 데이터를 메모리 위에 올려두지 않는 경우가 많습니다. 가상 메모리 시스템을 사용하여 메모리와 스왑 영역을 가지고 작업을 진행시키죠. 이러한 방식으로 얻을 수 있는 장점들에 대해서는 아래 글에서 다루어 보았습니다. [운영체제(OS)] 가상 메모리 - (1) 가상 메모리와 페이징 기법 0.🚶들어가며 이번 글에서는 가상 메모리가 무엇인지에 대해 알아보고 가상 메모리를 구현하는 방법 중 하나인 페..
[운영체제(OS)] 가상 메모리 - (2) 세그멘테이션 기법과 세그멘테이션-페이징 혼용 기법
2022. 3. 1. 18:20
CS/운영체제
0.🚶들어가며 지난 글에서 가상 메모리와 페이징 기법에 대해 알아보았습니다. 이번 시간에는 세그멘테이션 기법과 세그멘테이션-페이징 혼용 기법에 대해 알아보도록 하겠습니다. 1.📖세그멘테이션 기법 세그멘테이션 기법은 가변 분할 방식을 이용한 가상 메모리 관리 기법으로, 물리 메모리를 프로세스 크기에 따라 가변적으로 나누어 사용합니다. 세그멘테이션 기법의 구현과 주소 변환은 어떤 방식으로 이루어지는지 알아보겠습니다. 1) 세그멘테이션 기법 구현 위 사진은 세그멘테이션 기법과 세그멘테이션 테이블에 대해 보여주고 있습니다. 세그멘테이션 테이블에는 limit 값과 address 값이 존재합니다. address값은 페이징 테이블의 프레임과 비슷한 개념입니다. 페이징 테이블에는 없었던 limit 값은 세그먼트가 메..
[운영체제(OS)] 가상 메모리 - (1) 가상 메모리와 페이징 기법
2022. 3. 1. 18:19
CS/운영체제
0.🚶들어가며 이번 글에서는 가상 메모리가 무엇인지에 대해 알아보고 가상 메모리를 구현하는 방법 중 하나인 페이징 기법에 대해 알아보도록 하겠습니다. 1.💻가상 메모리..? 컴퓨터마다 메인 메모리(물리 메모리)의 크기가 다릅니다. 그렇다면 크기가 3GB인 프로세스를 2GB의 메모리만 가지고 있는 컴퓨터에서 실행하고 싶을 때는 어떻게 해야 할까요? 크기가 다른 물리 메모리에서도 일관되게 프로세스를 실행할 수 있게 도와주는 것이 바로 가상 메모리 기술입니다. 물리 메모리의 크기와 상관없이 메모리를 이용할 수 있도록 지원해주는 기술이죠. 가상 메모리 기술 덕분에 프로그래머는 물리 메모리 크기에 구애받지 않고 편하게 프로그램을 만들 수 있게 되었습니다. 현대 메모리 관리의 가장 큰 특징은 물리 메모리의 크기와 ..
[운영체제(OS)] 물리 메모리 관리 - (2) 멀티 프로그래밍 환경에서의 메모리 할당
2022. 2. 28. 17:01
CS/운영체제
0.🚶들어가며 지난 글에서는 메모리 관리와 관련된 개념과 단일 프로그래밍 환경에서의 메모리 할당에 대해 배웠습니다. 이번 글에서는 멀티프로그래밍 환경에서의 메모리 할당에 대해 알아보겠습니다. 한 번에 한 프로세스만 실행되는 메모리 구조에서는 오버레이와 스왑 정도로 메모리 관리가 충분할 수도 있습니다. 하지만 메모리에 여러 프로세스가 동시에 올라오면 문제가 조금 달라집니다. 훨씬 복잡한 환경으로 변하는 것이죠. 또한 프로세스들은 서로 크기가 달라 메모리에 어떤 방식으로 적재할지도 고민해봐야 합니다. 이와 관련된 내용에 대해 알아보도록 하겠습니다. 1.📚메모리 분할 방식 메모리 분할 방식에는 크게 가변 분할, 고정 분할 방식이 있습니다. 아래 그림을 살펴보도록 합시다. 1) 가변 분할 방식 가변 분할 방식은..
[운영체제(OS)] 물리 메모리 관리 - (1) 메모리 관리에 대하여.
2022. 2. 28. 16:59
CS/운영체제
0.🚶들어가며 모든 프로그램은 메인 메모리에 올라와서 실행됩니다. 메모리는 한정된 자원으로 이를 활용하는 방법에 따라 성능에 큰 영향을 줄 수 있습니다. 오늘날 시분할 시스템에서 운영체제를 포함한 여러 프로그램들이 메모리에 올라와 실행되기 때문에 이를 관리하는 일은 쉬운 개념이 아닙니다. 메모리에 올라가는 프로세스 입장에서는 자신의 작업이 편리해지길 원하며 메모리를 관리하는 관리자 입장에서는 관리의 편리함을 원하죠. 프로세스와 메모리 관리자 각각의 상충되는 요구를 어떻게 타협해나가며 오늘날의 메모리 관리 시스템을 만들어 나아가는지에 대해 알아보도록 하겠습니다. 1.📖메모리 관리자 (MMU) 메모리 관리는 메모리 관리자가 합니다. 메모리 관리자는 MMU(Memory Manage Unit)이라는 하드웨어입니..
[운영체제(OS)] 데드락(Deadlock) - (2) 데드락 해결 방법
2022. 2. 27. 22:47
CS/운영체제
0.🚶들어가며 이전 글에서 데드락이 무엇인지에 대해 알아보았습니다. 이번 글에서는 데드락을 해결하는 방법에 대해 알아보겠습니다. 데드락을 해결하는 방법을 크게 네 가지로 나눠 소개해볼 예정입니다. 데드락 예방 데드락 회피 데드락 검출과 회복 데드락 무시 위 네 가지 방법이 각각 무엇인지, 장단점은 무엇인지를 위주로 설명드리도록 하겠습니다. 1.🤚데드락 예방 (Deadlock prevention) 이전 글에서 데드락을 일으키는 조건에는 네 가지가 있다고 했습니다. 네 가지 중 하나라도 충족하지 않으면 데드락은 발생하지 않는 것이죠. 데드락 예방은 네 가지 조건 중 하나라도 충족시키지 못하게 하여 데드락이 발생하지 않도록 하는 해결방법입니다. 각 조건을 하나씩 보면서 내용을 알아보도록 하죠. 1. 상호 배제..