[운영체제] 파일 시스템(File System)
컴퓨터 구조 & 운영체제/운영체제2023. 7. 11. 00:14[운영체제] 파일 시스템(File System)

이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 파티셔닝(partitioning)과 포매팅(formatting) 파티셔닝(파티션을 나누는 작업) : 저장 장치의 논리적인 영역을 구획하는 작업 파티션 : 파티셔닝 작업을 통해 나누어진 하나의 영역 포매팅 : 포맷을 하는 작업, 어떤 종류의 파일 시스템을 사용할지 결정하고 새로운 데이터를 쓸 준비를 하는 작업 포맷(포매팅)의 종류 저수준 포매팅 : 저장 장치를 생성할 당시 공장에서 수행되는 물리적인 포매팅 논리적 포매팅 : 파일 시스템을 생성하는 포매팅 이 글에서 포매팅은 논리적 포매팅을 뜻한다. 파일 할당 방법 포매팅까지 끝난 하드 디스크에 파일을 저장하기 운영체제는 파..

[운영체제] 파일과 디렉터리
컴퓨터 구조 & 운영체제/운영체제2023. 7. 10. 00:37[운영체제] 파일과 디렉터리

이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 파일과 디렉터리 모두 운영체제 내부 파일 시스템이 관리하는 존재들이다. 보조기억장치의 데이터 덩어리 파일(file) 보조기억장치에 저장된 관련 정보의 집합 의미 있고 관련 있는 정보를 모은 논리적 단위 파일을 이루는 정보 파일 이름 파일을 실행하기 위한 정보 파일 관련 부가 정보(=속성(attribute) 또는 메타데이터(metadata)) 윈도우 운영체제에서 임의의 파일을 선택하고 마우스 우클릭을 하고 속성 버튼을 누르면 나타나는 정보가 파일 속성이다. 파일 속성과 유형 유형 : 운영체제가 인식하는 파일 종류(확장자)를 나타냄 파일 연산을 위한 시스템 호출 파일을 다루..

[운영체제] 페이징의 쓰기 시 복사와 계층적 페이징
컴퓨터 구조 & 운영체제/운영체제2023. 7. 9. 00:31[운영체제] 페이징의 쓰기 시 복사와 계층적 페이징

이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 쓰기 시 복사(copy on write) 전통적인 관점에서 fork()함수를 이용하여 프로세스를 복제하면 코드 및 데이터 영역을 비롯한 모든 자원이 복제되어 서로 다른 메모리 공간에 적재된다. 각 프로세스의 페이지 테이블은 자신의 고유한 페이지가 할당된 프레임을 가리킨다. 이러한 복사 작업은 프로세스 생성 시간을 늦출 뿐만 아니라 불필요한 메모리 낭비를 야기한다. 쓰기 시 복사를 이용하면 각 프로세스(부모 프로세스와 자식 프로세스)는 동일한 프레임을 가리킨다. 이로써 굳이 부모 프로세스의 메모리 공간을 복사하지 않고도 동일한 코드 및 데이터 영역을 가리킬 수 있다. 만일..

[운영체제] 페이지 교체와 프레임 할당
컴퓨터 구조 & 운영체제/운영체제2023. 7. 8. 00:34[운영체제] 페이지 교체와 프레임 할당

이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 운영체제는 한정된 물리적 메모리 용량 때문에, 기존에 적재된 불필요한 페이지를 선별해 보조기억장치로 내보내고, 프로세스들에게 적절한 수의 프레임을 할당해야 한다. 요구 페이징 처음부터 모든 페이지를 적재하지 않고 필요한 페이지만을 메모리에 적재하는 기법 요구되는 페이지만 적재하는 기법 요구 페이징은 아래의 과정으로 흘러간다. 순수 요구 페이징(pure demand paging) 아무런 페이지도 메모리에 적재하지 않은 채 일단 프로세스 실행 프로세스의 첫 명령어부터 페이지 폴트가 발생 어느 정도 시간이 지난 후부터 페이지 폴트 발생 빈도가 적어짐 요구 페이징이 안정적으로 ..

[운영체제] 페이징을 통한 가상 메모리 관리
컴퓨터 구조 & 운영체제/운영체제2023. 7. 7. 00:47[운영체제] 페이징을 통한 가상 메모리 관리

이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 연속 메모리 할당의 문제점은 아래와 같다. 외부 단편화 물리 메모리의 크기보다 크기가 큰 프로세스 실행 불가 예를 들어 램 용량이 4GB인데 프로세스 크기가 5GB면 실행할 수 없는 것이다. 하지만 가상 메모리(virtual memory)를 이용하면 이게 가능하다. 또한 외부 단편화 문제도 해결할 수 있다. 가상 메모리는 실행하고자 하는 프로그램을 일부만 메모리에 적재하여 실제 물리 메모리 크기보다 더 큰 프로세스를 실행할 수 있게 하는 기술이다. 가상 메모리 관리 기법에는 페이징과 세그멘테이션이 있지만, 페이징 기법이 일반적으로 더 많이 사용된다. 따라서 이 글에서는 ..

[운영체제] 연속 메모리 할당
컴퓨터 구조 & 운영체제/운영체제2023. 7. 6. 00:44[운영체제] 연속 메모리 할당

이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 프로세스에 연속적인 메모리 공간을 할당하는 방식을 연속 메모리 할당 방식이라고 한다. 스와핑(Swaping) 현재 실행되지 않는 프로세스들을 보조기억장치의 일부 영역으로 쫓아내고, 메모리에 생긴 빈 공간에 새로운 프로세스를 적재시키는 방법 스왑 영역(swap space) : 프로세스들이 쫓겨나서 머무는 보조기억장치의 일부 영역 스왑 아웃(swap out) : 현재 실행되지 않는 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것 스왑 인(swap in) : 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨오는 것 스왑 아웃되었던 프로세스가 다시 스왑 인이 될 때는 이전 물리 ..

[운영체제] 교착 상태(Deadlock) 해결 방법
컴퓨터 구조 & 운영체제/운영체제2023. 7. 5. 00:44[운영체제] 교착 상태(Deadlock) 해결 방법

이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 아래는 모두 프로세스를 예로 들었지만 스레드에서도 똑같이 적용된다. 교착 상태가 발생할 조건에는 아래와 같이 네 가지가 있다. 아래의 조건 중 하나라도 만족하지 않는다면 교착 상태가 발생하지 않지만, 아래 조건이 모두 만족될 때 교착 상태가 발생할 가능성이 생긴다. 상호 배제(mutual exclusion) : 한 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없는 상태 점유와 대기(hold and wait) : 자원을 할당받은 상태에서 다른 자원을 할당받기를 기다리는 상태 비선점(nonpreemptive) : 어떤 프로세스도 다른 프로세스의 자원을 강제로 빼앗지..

[운영체제] 교착 상태(Deadlock)의 개념
컴퓨터 구조 & 운영체제/운영체제2023. 7. 4. 00:11[운영체제] 교착 상태(Deadlock)의 개념

이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 교착 상태(Deadlock) 교착 상태의 정의 : 일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상 아래는 모두 프로세스를 예로 들었지만 스레드에서도 똑같이 적용된다. 예를 들어, 아래와 같은 상황을 교착 상태라고 말할 수 있다. 게임 프로세스는 자원 A를 점유한 채 웹 브라우저 프로세스가 점유하고 있는 자원 B의 사용을 기다림 웹 브라우저 프로세스는 자원 B를 점유한 채 게임 프로세스의 자원 A 사용이 끝나길 기다림 또 다른 교착상태의 예를 들면 식사하는 철학자 문제가 있다. 식사하는 철학자 문제에서 한두 명의 철학자가 식사를 할 때는 문제가 되지 않지만, 모든 ..

image