운영체제

· 🛠️ OS
파일 시스템이 파일과 디렉터리를 보조기억장치에 할당하고 접근하는 방법대표적인 파일 시스템의 종류(FAT 파일 시스템, 유닉스 파일 시스템) 학습파티셔닝과 포매팅이제 막 공장에서 생산되어 한 번도 사용된 적 없는 새 하드 디스크 / SSD ?파티셔닝, 포매팅 하기 전까지는 사용할 수 없다파티셔닝저장 장치의 논리적인 영역을 구획하는 작업포매팅파일 시스템을 설정어떤 방식으로 파일을 관리할지 결정, 새로운 데이터를 쓸 준비하는 작업파일 시스템에는 여러 종류가 있고, 파티션마다 다른 파일 시스템을 설정할 수도 있다포매팅까지 완료하여 파일 시스템을 설정했다면 이제 파일과 디렉터리 생성이 가능해진다 1. 파일 할당 방법포매팅까지 끝난 하드 디스크에 파일을 저장하기운영체제는 파일/디렉터리를 블록 단위로 읽고 쓴다즉, ..
· 🛠️ OS
1. 파일 시스템 (file system)파일과 디렉터리를 관리하는 운영체제 내의 프로그램파일과 디렉터리를 다루어 주는 프로그램 2. 파일과 디렉터리보조기억 장치의 데이터 덩어리 3. 파일보조기억장치에 저장된 관련 정보의 집합의미 있고 관련 있는 정보를 모은 논리적 단위파일을 이루는 정보파일을 실행하기 위한 정보 + 부가 정보(=속성, 메타 데이터)파일의 속성 (운영체제마다 다름)유형: 운영체제가 인지하는 파일의 종류를 나타낸다 → 확장자로 힌트를 준다 (ex. c, c++, zip, lib, mov, mp3, .exe)크기: 파일의 현재 크기와 허용 가능한 최대 크기를 나타낸다보호: 어떤 사용자가 해당 파일을 읽고, 쓰고, 실행할 수 있는지를 나타낸다.생성 날짜: 파일이 생성된 날짜를 나타낸다마지막 접..
· 🛠️ OS
이론적인 fork() 프로세스는 기본적으로 자원을 공유하지 않는다 → 부모 프로세스가 적재된 별도의 공간에 자식 프로세스가 통째로 복제되어 적재 단점: 프로세스 생성 시간 지연, 메모리 낭비 → 이를 해결하는 쓰기 시 복사(copy on write) 1. 쓰기 시 복사 부모 프로세스와 동일한 자식 프로세스가 복제되어 생성되면, 자식 프로세스는 부모 프로세스와 동일한 프레임을 가리킴(쓰기 작업 없다면 이 상태 유지 부모 프로세스/자식 프로세스 둘 중 하나가 페이지에 쓰기 작업 수행 시 해당 페이지는 별도의 공간으로 복제 → 프로세스 생성 시간 절약, 메모리 절약 2번 페이지만 별도 공간 사용함 2. 계층적 페이징 페이지 테이블을 페이징하여 여러 단계의 페이지 페이지를 두는 방식 페이지 테이블을 여러 페이지..
· 🛠️ OS
페이징을 통해서 물리 메모리보다 큰 프로세스를 실행할 수 있지만, 그럼에도 물리 메모리의 크기는 한정되어있다. 그렇기에 운영체제는 이 2가지 문제를 해결해야합니다. 기존에 적대된 불필요한 페이지를 선별해 보조기억장치로 내보내고 (→ 페이지 교체) 프로세스들에게 적절한 수의 프레임을 할당해야 함 (→ 프레임 할당) 1. 요구 페이징 처음부터 모든 페이지를 적재하지 않고 필요한 페이지만을 메모리에 적재하는 기법 요구되는 페이지만 적재하는 기법 순수 요구 페이징 - 아무런 페이지도 메모리에 적재하지 않은 채 무작정 실행부터 하는 방법 순서 CPU가 특정 페이지에 접근하는 명령어를 실행한다. 해당 페이지가 현재 메모리에 있을 경우(유효 비트가 1일 경우) CPU는 페이지가 적재된 프레임에 접근한다. 해당 페이지..
· 🛠️ OS
연속 메모리 할당의 두 가지 문제점 외부 단편화 물리 메모리보다 큰 프로세스 실행 불가 가상 메모리 실행하고자 하는 프로그램을 일부만 메모리에 적재하여, 실제 물리 메모리 크기보다 더 큰 프로세스를 실행할 수 있게 하는 기술 페이징, 세그멘테이션 1. 페이징이란 외부 단편화가 발생했던 근본적인 문제? 각기 다른 크기의 프로세스가 메모리에 연속적으로 할당되었기 때문 그러면, 프로세스를 일정 크기로 자르고, 이를 메모리에 불연속적으로 할당할 수 있다면 어떨까? → 외부 단편화는 발생하지 않겠죠! 페이징: paging 프로세스의 논리 주소 공간을 페이지(page)라는 일정 단위로 자르고, 메모리의 물리 주소 공간을 프레임(frame)이라는 페이지와 동일한 일정한 단위로 자른 뒤 페이지를 프레임에 할당하는 가상..
· 🛠️ OS
연속 메모리 할당: 프로세스에 연속적인 메모리 공간을 할당 1. 스와핑 현재 사용되지 않는 프로세스들을 보조기억장치의 일부 영역으로 쫓아내고, 그렇게 생긴 빈 공간에 새 프로세스 적재 프로세스들이 요구하는 메모리 공간 크기가 실제 메모리 크기보다 큰 경우에도 프로세스들을 동시에 실행시킬 수 있음 스왑 영역의 크기 확인하는 명령어: free, top 2. 메모리 할당 프로세스는 메모리의 빈 공간에 할당되어야 한다.. 빈 공간이 여러 개 있다면? 어떤 방식으로 할당하느냐에 따라 다른 세 가지의 할당 방식: 최초 적합, 최적 적합, 최악 적합 최초 적합: first fit 운영체제가 메모리 내의 빈 공간을 순서대로 검색하다 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식 검색 최소화, 빠른..
· 🛠️ OS
교착 상태 해결 방법: 1)예방, 2)회피, 3)검출 후 회복 1. 교착 상태 예방 애초에 교착 상태가 발생하지 않도록 하는 것 교착 상태 발생 조건(상호 배제, 점유와 대기, 비선점, 원형 대기) 중 하나를 없애버리기 상호 배제를 없애면? 모든 자원을 공유 가능하게 만든다? → 이론적으로는 가능하지만, 현실적으로 불가능함 점유와 대기를 없애면? 특정 프로세스에 자원을 모두 할당하거나, 아예 할당하지 않는 방식으로 배분 → 자원의 활용률을 낮출 수 있는 방식 단점: 자원의 활용도가 떨어짐 비선점 조건을 없애면? 선점이 가능한 자원(ex. CPU)에 한해 효과적임 → 모든 자원이 선점 가능한 것은 아니다 원형 대기 조건을 없애면? 자원에 번호를 붙이고 오름차순으로 할당하면 원형 대기는 발생하지 않음 가장 ..
· 🛠️ OS
교착상태 일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상 교착 상태를 해결 방법의 순서 교착 상태가 발생했을 때의 상황을 정확히 표현해보기 → 표현 방법: 자원 할당 그래프 교착 상태가 일어나는 근본적인 이유 이해하기 1) 자원 할당 그래프 그래프를 그려보면 교착 상태 발생 조건을 파악할 수 있음 어떤 프로세스가 어떤 자원을 할당받아 사용 중인지 확인 가능 어떤 프로세스가 어떤 자원을 기다리고 있는지 확인 가능 그리는 방법 프로세스는 원으로, 자원의 종류는 사각형으로 표현 사용할 수 있는 자원의 개수는 자원 사각형 내에 점으로 표현 프로세스가 어떤 자원을 할당 받아 사용 중이라면 자원에서 프로세스를 향해 화살표를 표시 프로세스가 어떤 자원을 기다리고 있다면 프로세스에서 자원으로 화살표를 표시그리는..
JINiOS
'운영체제' 태그의 글 목록