CS지식/운영체제
-
쉽게 배우는 운영체제(저자 조성호) 후기CS지식/운영체제 2021. 7. 18. 21:09
쉽게 배우는 운영체제 후기 2021년 05월 18일, KOCW에서 제공하는 반효경 교수님의 운영체제 수업을 완강하고 조금 더 기초를 튼튼히 하고자 책을 찾아 나섰다. 처음에는 많은 사람들이 추천해주는 공룡책으로 유명한 운영체제라는 책을 선택했다. http://www.yes24.com/Product/Goods/89496122 운영체제 - YES24 www.yes24.com 하지만, 이 선택은 너무나도 멍청한 선택이였다. 일단은 그냥 남들이 좋아요 괜찮아요라고 한 말에 이끌리고 내가 정말 읽기 괜찮은지 생각을 안해보고 무작정 책을 빌려왔기 때문이다. 물론, 컴퓨터공학 전공생이라면 공룡책을 보고 독학을 하며 배운 내용을 리마인드할 수도 있다. 하지만, 운영체제 기초를 다지기에는 비전공자로서 너무 책이 어렵고 ..
-
디렉토리(directory)란 무엇인가CS지식/운영체제 2021. 7. 17. 22:41
디렉토리(directory)는 서로 관련 있는 파일을 하나로 모아놓은 것이다. 디렉토리는 1개 이상의 파일을 가질 수 있고 1개 이상의 자식 디렉토리를 가질 수도 있다. 즉, 하나의 디렉토리에는 여러 개의 파일과 자식 디렉토리가 존재한다. 이렇게 디렉토리 안에 여러 개의 파일과 자식 디렉토리가 존재하면 마치 여러 층으로 구성된 것처럼 보인다. 여기서 최상위에 있는 디렉토리를 루트 디렉토리라고 한다. 디렉토리의 구조 초기 파일 시스템의 디렉토리 구조는 1단계 구조였다. 1단계 디렉토리 구조에서는 루트 디렉토리에 새로운 디렉토리를 만들 수 있지만 디렉토리 안에 자식 디렉토리를 만들 수는 없었다. 1단계 디렉토리 구조는 파일이 많아지면 불편하여 다단계 디렉토리 구조가 등장했다. 다단계 디렉토리 구조는 루트 디..
-
RAID란 무엇인가CS지식/운영체제 2021. 7. 15. 22:59
RAID는 자동으로 백업을 하고 장애가 발생하면 복구하는 시스템으로 동일한 규격의 디스크를 여러 개 모아 구성하며 장애가 발생했을 때 데이터를 복구하는 데 사용된다. RAID는 왜 나오게 된 것일까? 요즘 시대에 아마도 휴대폰은 하나씩 소유하고 있을 것이다. 휴대폰 뿐만 아니라 PC, 카메라 등 다양한 개인 디지털 기기가 늘어나면서 개인 데이터의 크기도 급격히 증가하게 되었다. 이러한 데이터를 저장장치에 보관할 때는 백업을 해야한다. 그 이유는 하드디스크에 저장된 데이터가 영구적일 것 같지만 하드디스크도 수명이 존재하고 기타 저장매체에는 최대 사용 횟수가 정해져 있기 때문이다. 따라서 저장장치에 있는 중요한 데이터는 수시로 백업을 해주어야하는데 이를 수동으로 하면 매우 귀찮을 것이다. 또한 얼마나 자주해..
-
스레싱(thrashing)이란 무엇인가CS지식/운영체제 2021. 7. 13. 23:17
우리는 컴퓨터에서 실제 물리 메모리 이외에 프로세스만의 가상 메모리를 사용하며 주소 변환을 통해 물리 메모리에 접근한다고 배웠다. 또한, 페이징 기법이나 세그멘테이션 기법을 통해 나뉘어진 조각들은 물리 메모리에 위치할 수도 있고 스왑영역에 위치할 수도 있다는 것을 배웠다. 하나의 프로세스가 작업 중이라고 해서 프로세스의 전체 데이터가 물리 메모리의 전체 영역에 할당되는 것은 비효율적이기때문에 그때 그때 필요한 부분만 물리 메모리에 올리고 쓸 일이 없는 부분은 스왑영역에 올려 메모리 관리를 효율적으로 진행한다. 현재 CPU를 점유하고 있는 프로세스가 필요로 하는 데이터가 물리 메모리에 없다면 swap in과 swap out을 통해 필요한 데이터를 스왑영역에서 물리 메모리에 올리고 물리 메모리에 있던 어떠한..
-
세그멘테이션 기법이란 무엇인가CS지식/운영체제 2021. 6. 24. 22:11
세그멘테이션 기법은 가변 분할 방식으로 물리 메모리를 프로세스의 크기에 따라 가변적으로 나누어 사용할 수 있다. 세그멘테이션 기법에서는 세그멘테이션 테이블이라는 매핑 테이블을 사용한다. 세그멘테이션 테이블에는 세그멘트의 크기를 나타내는 limit와 물리 메모리의 어디에 위치했는지, 시작 위치를 나타내는 address가 있다. 순서는 가상 메모리에서의 세그멘트 번호에 따라 순차적으로 저장된다. 세그멘테이션 기법은 프로세스의 크기에 따라 메모리를 가변적으로 분할하기 때문에 매핑 테이블에 크기 정보를 포함해야한다. 만약에 프로세스가 물리 메모리에 올라갈 공간이 없다면 스왑 영역에 올려 놓는다. 이렇게 프로세스가 스왑 영역에 올려져있다면(위 그림에서는 프로세스 D를 말함) 세그멘테이션 테이블에서 address에..
-
페이징 기법이란 무엇인가CS지식/운영체제 2021. 6. 21. 22:03
페이징 기법은 고정 분할 방식으로 메모리를 분할하여 가상 주소를 물리 주소로 변환하는 방법이다. 위 그림을 보면 가상 메모리는 프로세스 입장에서 바라본 메모리 공간으로 항상 0번지부터 시작한다. 가상 메모리의 분할된 영역은 페이지(page)라고 하며 첫 번째 영역을 페이지 0으로 번호를 매겨 아래로 순차적으로 번호를 매긴다. 물리 메모리의 각 영역은 가상 메모리와 구분하기 위해 프레임(frame)이라고 한다. 프레임도 페이지와 마찬가지로 번호를 매기고 페이지와 프레임의 크기는 같다. 페이지와 프레임의 크기가 같기 때문에 페이지가 물리 메모리에 매핑이 될 때 어느 위치에나 올라갈 수 있다. 어떤 페이지가 어느 프레임에 있는지에 대한 매핑 정보는 페이지 테이블에 저장을 한다. 페이지 테이블은 하나의 열(co..
-
가상 메모리란 무엇인가CS지식/운영체제 2021. 6. 18. 22:10
우리가 사용하는 컴퓨터에 물리 메모리가 존재하는데 모든 컴퓨터의 물리 메모리의 크키는 다를 수 있다. 그러면 2GB의 물리 메모리 공간을 요구하는 프로그램은 1GB 크기의 물리 메모리를 가진 컴퓨터에서는 동작하지 않을까? 만약 운영체제가 물리 메모리의 크기에만 의존한다면 1GB 크기의 물리 메모리를 가진 컴퓨터에서 프로그램이 동작하지 않을 것이다. 이러한 부분을 해결할 수 있는 기술이 가상 메모리이다. 가상 메모리는 크기가 다른 물리 메모리에서 일관되게 프로세스를 실행할 수 있는 기술이다. 즉, 컴퓨터의 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술로 프로세스는 운영체제가 어는 공간에 위치해있는지, 물리 메모리의 크기는 어떠한지 신경 쓰지 않고 메모리를 사용할 수 있다. 어..
-
컴파일러와 인터프리터는 무엇인가CS지식/운영체제 2021. 6. 15. 22:16
컴파일러와 인터프리터는 대표적인 언어 번역 프로그램이다. 그러면 무슨 언어를 어떻게 번역한다는 것일까? 우리는 코딩을 할 때 흔히 알고 있는 C언어, JAVA, Python 등 프로그래밍 언어를 사용한다. 이러한 프로그래밍 언어는 사람들이 보았을 때에는 이해하기 쉽지만 0과 1밖에 모르는 컴퓨터에게는 너무나도 어렵다. 그래서 우리가 쓴 프로그래밍 언어를 컴퓨터가 이해할 수 있는 기계어로 번역하는 작업이 필요하고 이러한 작업을 하는 것이 컴파일러와 인터프리터이다. 컴파일러는 소스코드를 컴퓨터가 실행할 수 있는 기계어로 번역하여 목적 프로그램으로 만든 후, 링킹 작업을 통해 컴퓨터에서 실행 가능한 실행 프로그램을 생성하여 실행된다. 인터프리터는 목적 프로그램은 생성되지 않고 코드를 한 줄씩 읽어 들여 기계어..