본문 바로가기

CS

(19)
[CS] 파일 시스템 목차파일디렉터리파일 할당 방법파일 시스템 파일 시스템(file system)파일과 디렉터리를 관리하는 운영체제 내의 프로그램파일과 디렉터리를 다루어 주는 프로그램 파일과 디렉터리보조기억장치의 데이터 덩어리, 파일과 디렉터리 파일보조기억장치에 저장된 관련 정보의 집합의미 있고 관련 있는 정보를 모은 논리적 단위 파일을 이루는 정보파일을 실행하기 위한 정보 + 부가 정보 (= 속성, 메타 데이터) 파일의 속성  파일 연산을 위한 시스템 호출파일 생성파일 삭제파일 열기파일 닫기파일 읽기파일 쓰기 등 디렉터리윈도우에서는 폴더(folder)1단계 디렉터리    여러 계층으로 파일 및 폴더를 관리하는 트리 구조 디렉터리최상위 디렉터리(루트 디렉터리, /), 서브 디렉터리경로디렉터리를 이용해 파일/디렉터리의 위치, ..
[CS] 페이지 교체와 프레임 할당 목차요구페이징페이지 교체페이지 교체 알고리즘스래싱프레임 할당 물리 메모리보다 큰 프로세스를 실행할 수 있지만,그럼에도 불구하고 메모리의 크기는 한정되어 있다. 운영체제 입장에서 해결해야 할 문제기존에 적재된 불필요한 페이지를 선별해 보조기억장치로 내보내야 함(페이지 교체)프로세스들에게 적잘한 수의 프레임을 할당해야 함(프레임 할당)  요구 페이징처음부터 모든 페이지를 적재하지 않고 필요한 페이지만을 메모리에 적재하는 기법요구되는 페이지만 적재하는 기법순수 요구 페이징 방식  이러한 요구 페이징 시스템이 안정적으로 작동하려면 해결해야 할 문제?페이지 교체프레임 할당 페이지 교체 알고리즘요구 페이징 기법으로 페이지들을 적재하다보면 언젠간 메모리가 가득 차게 된다.당장 실행에 필요한 페이지를 적재하려면 적재된..
[CS] 페이징의 이점 목차쓰기 시 복사계층적 페이지 페이징의 이점저번 포스팅에서도 설명했지만 페이징은 외부적 단편화를 해결할 수 있다는 장점이 있었다.하지만 이 외에도 여러가지 이점들이 있다.대표적으로 프로세스 간의 페이지를 공유할 수 있다는 장점이 있다. 쓰기 시 복사 이론적인 fork( )프로세스는 기본적으로 자원을 공유하지 않는다.=> 부모 프로세스가 적재된 별도의 공간에 자식 프로세스가 통째로 복제되어 적재(프로세스 생성 시간 지연, 메모리 낭비) 쓰기 시 복사부모 프로세스와 동일한 자식 프로세스가 복제되어 생성되면자식 프로세스는 부모 프로세스와 동일한 프레임을 가리킴 (쓰기 작업 없다면 이 상태 유지) 부모 프로세스 / 자식 프로세스 둘 중 하나가 페이지에 쓰기 작업 수행 시해당 페이지는 별도의 공간으로 복제(불변 ..
[CS] 운영체제의 메모리 관리 방식 페이징 목차연속 메모리 할당외부 단편화페이징페이지 테이블PTBRTLB페이징에서의 주소 변환페이지 테이블 엔트리   연속 메모리 할당연속 메모리 할당: 프로세스에 연속적인 메모리 공간을 할당 문제점외부 단편화물리 메모리보다 큰 프로세스 실행 불가  스와핑현재 사용되지 않는 프로세스들을 보조기억장치의 일부 영역으로 쫓아내고그렇게 생긴 빈 공간에 새 프로세스 적재지금 당장 사용하는 프로세스만 메모리에 적재 장점: 프로세스들이 요구하는 메모리 공간 크기 > 실제 메모리 크기  메모리 할당프로세스는 메모리의 빈 공간에 할당되어야 한다... 빈 공간이 여러 개 있다면?최초 적합: 적재할 프로세스를 빈 공간 A에 적재할 경우최적 적합: 적재할 프로세스를 빈 공간 C에 적재할 경우최악 적합: 적재할 프로세스를 빈 공간 B에 ..
[CS] 교착 상태 목차교착 상태란?자원 할당 그래프교착 상태가 발생할 조건교착 상태 해결 교착 상태란?프로세스는 정상적으로 작동하려면 자원이 필요한데 두 개 이상의 프로세스가 각자 갖고 있는각각의 자원들을 그저 기다리기만 한다면 그 어떤 프로세스도 실행되지 못하고 꽉 막힌 도심처럼 멈춰버리는 현상 식사하는 철학자 문제교착 상태가 왜 발생하는지 교착 상태를 어떤 방식으로 해결할까? 동그란 식탁에 5명의 철학자가 앉아있다.철학자들 사이사이에는 이 식사에 꼭 필요한 포크가 있다.이 음식을 먹을려면 꼭 2개의 포크가 있어야 한다.  과연 모든 철학자들이 동시에 이 과정을 반복한다고 했을 때 철학자들은 무사히 이 식사를 마칠 수 있을까요?한 두명의 철학자가 식사한다면 문제가 되지 않지만모든 철학자들이 동시에 이러한 순서대로 식사를..
[CS] 동기화 목차동기화실행 순서 제어를 위한 동기화상호 배제를 위한 동기화공유 자원과 임계 구역동기화 기법(뮤텍스 락, 세마포, 모니터) 동기화동시다발적으로 실행되는 프로세스들은 서로 협력하며 영향을 주고받는다.이 과정에서 자원의 일관성을 보장해야 한다. => 프로세스들의 동기화를 고려해야 한다. 동기화의 의미공동의 목적을 위해 동시에 수행되는 프로세스(프로세스 + 스레드)※ 이 글은 프로세스와 스레드를 구분하지 않고 합쳐 프로세스로 정의하겠습니다.예시)워드 프로세서 프로그램맞춤법 검사 프로세스입력 내용을 화면에 출력하는 프로세스... 여러 프로세스 Q. 프로세스 아무렇게나 마구 실행해도 괜찮을까?A. NO!!! 올바른 수행을 위해 프로세스들은 동기화되어야 한다.(자원의 일관성 보장해줘야 함) (프로세스) 동기화란?..
[CS] CPU 스케줄링 알고리즘 목차CPU 스케줄링우선순위대기큐와 준비큐선점형과 비선점형 스케줄링CPU 스케줄링 알고리즘  CPU 스케줄링운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것  프로세스 우선순위가장 공정한 CPU 스케줄링?CPU를 사용하고 싶어하는 프로세스들이 차례로 돌아가며?빨리 처리해야 하는 프로세스가 있기 때문 (= 프로세스마다 우선순위가 다르기 때문) 입출력 작업이 많은 프로세스 (= 입출력 집중 프로세스) 의 우선순위는CPU 작업이 많은 프로세스 (= CPU 집중 프로세스) 의 우선순위보다 높다.  프로세스 우선순위(priority) 이런식으로 모든 프로세스가 CPU를 그저 차례대로 돌아가면서 사용하는 것보다각각의 상황에 맞게 요구하는 자원에 맞게 CPU를 배분하는 것이 조금 더 효율적이다.우..
[CS] 스레드 스레드스레드(thread)는 프로세스를 구성하는 실행 흐름의 단위하나의 프로세스는 하나 이상의 스레드를 가질 수 있다.  실행 흐름이 하나인 프로세스 (단일 스레드 프로세스)   실행 흐름이 여러 개인 프로세스 (멀티 스레드 프로세스)프로세스를 이루는 여러 명령어 동시 실행 가능 그렇다면 스레드에는 뭐가 있길래 하나의 프로세스에 스레드가 별도로 실행될 수 있을까? 스레드의 구성요소 하나의 스레드마다 스레드 ID, 프로그램 카운터를 비롯한 레지스터 값, 스택 등프로그램을 실행하기에 필요한 최소한의 정보를 가지고 있다.  프로세스를 이루는 스레드들은 프로세스의 자원을 공유하면서 실행이 된다!즉, 스레드 1, 2, 3이 병행 실행되고 있다고 하지만 스레드 1, 2, 3은모두 똑같은 코드 영역, 데이터 영역을 ..
[CS] 프로세스 프로세스: "실행중인 프로그램"윈도우의 경우 작업 관리자를 통해서 확인할 수 있습니다. 프로세스 종류포그라운드 프로세스(foreground process)사용자가 볼 수 있는 공간에서 실행되는 프로세스백그라운드 프로세스(background process)사용자가 볼 수 없는 공간에서 실행되는 프로세스사용자와 상호작용하지 않고 그저 정해진 일만 수행하는 프로세스(데몬, 서비스)  프로세스 제어 블록모든 프로세스는 실행을 위해 CPU가 필요하다하지만 CPU 자원은 한정되어 있다.프로세스들은 돌아가며 한정된 시간 만큼만 CPU를 이용자신의 차례에 정해진 시간만큼 CPU 이용타이머 인터럽트가 발생하면 차례 양보 이렇게 빠르게 번걸아 수행되는 프로세스들을 관리해야 한다.이를 위해 사용하는 자료구조가 프로세스 제어..
[CS] 운영체제의 핵심 서비스 1. 프로세스 관리프로세스 == 실행 중인 프로그램수많은 프로세스들이 동시에 실행 운영체제는 이렇게 동시다발적으로 생성/실행/삭제되는 다양한 프로세스를 일목요연하게 관리할 수 있어야함프로세스와 스레드프로세스 동기화교착상태 해결    2. 자원 접근 및 할당CPU (CPU 스케줄링: 어떤 프로세스를 먼저, 얼마나 오래 실행할까?)메모리 (페이징, 스와핑, ...)입출력장치 3. 파일 시스템 관리관련된 정보를 파일이라는 단위로 저장 장치에 보관파일들을 묶어 폴더(디렉터리) 단위로 저장 장치에 보관  해당 포스팅에 나온 글과 이미지들은 강민철 저자님의 혼자 공부하는 컴퓨터 구조 + 운영체제의 책과 강의를 참고하여 만들어졌습니다.책에서 보다 깊게 나오는 내용이 있으므로 한번 구매하고 보셔도 좋을 것 같습니다. ..