[운영체제] Day5 파일과 디렉터리 (2)

빵코·2024년 4월 9일

파일과 메모리

파일시스템이 파일들을 메모리에 할당하고 접근하는 방법

파일 할당 방법

파일시스템에선 메모리 공간을 블록이라는 공간으로 나누고 주고를 할당해
파일을 읽고 쓰는데 활용함.
파일시스템은 파일정보를 파일테이블로 관리한다. 여기에는 파일이 시작하는 블록의 위치정보가 포 함되어 있다.

하나의 파일은 여러개의 블록으로 이루어져 있음. 블록을 메모리에 할당할 때는 연속 방식 또는 불연속 방식을 사용할 수 있음.

연속방식

연속할당방식은 보조기억장치내의 연속적인 블록에 파일을 할당하는 방식
파일의 시작 블록이 어딨는지만 알면 파일 전체에 손쉽게 접근 가능, 벗 외부단편화 발생 할 수 있어 실제 사용하진 않음

불연속 방식

불연속할당방식은 메모리의 비어있는 공간에 데이터를 분산해서 저장하는 방식
구분 방식에 따라 연결할당과 인덱스할당으로 구별할 수 있음

  • 연결할당
    연결할당은 각 블록의 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는, 참 조하는 형태로 할당하는 방식. 연결리스트를 활용하면 가능하다.

    -인덱스할당
    인덱스 할당은 파일의 모든 블록 주소를 인덱스블록이라는 별도의 블록에 따로 모아 관리하는 방 식.

연결리스트

'연결리스트' 자료구조(linked List)란?

연결리스트(linked list)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식 으로 데이터를 저장하는 자료구조이다.
각 노드는 다음 노드를 가리키는, 참조하는 포인터를 포함한다.
다음 노드를 가리키는 포인터는 다음 노드의 주소를 값으로 가지고 있다.
각 노드의 포인터 변수는 다음 노드의 데이터의 주소를 값으로 가진다. 또한 각 포인터 변수의 주소도 따로 존재한다.

C언어를 이용해 연결리스트를 구현하는 예제

profile
빵먹으면서 코딩하는 개발자를 꿈꾸는 코린이

0개의 댓글