본문 바로가기

CS

(27)
[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. 파일 시스템 관리관련된 정보를 파일이라는 단위로 저장 장치에 보관파일들을 묶어 폴더(디렉터리) 단위로 저장 장치에 보관  해당 포스팅에 나온 글과 이미지들은 강민철 저자님의 혼자 공부하는 컴퓨터 구조 + 운영체제의 책과 강의를 참고하여 만들어졌습니다.책에서 보다 깊게 나오는 내용이 있으므로 한번 구매하고 보셔도 좋을 것 같습니다. ..
[CS] 운영체제란? 운영체제란?모든 프로그램은 실행을 위해 자원을 필요로 한다. 자원 / 시스템 자원프로그램 실행에 있어 마땅히 필요한 요소컴퓨터의 네 가지 핵심 부품 포함! 운영체제는실행할 프로그램에 필요한 자원을 할당하고프로그램이 올바르게 실행되도록 돕는특별한 프로그램(커널영역   1. 운영체제의 메모리 관리운영체제는 실행할 프로그램을 메모리에 적재하고, 더 이상 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적으로 메모리 자원을 관리합니다.  2. 운영체제의 CPU 관리보통 프로그램을 실행하면 여러 개의 프로그램을 동시에 실행하게 된다. (브라우저, 메모장, 게임 등등)사실 컴퓨터 내부에서는 CPU가 우리가 인지하지 못할정도로 아주 빠르게 번갈아 실행되고 있다.그렇다면 어떤 프로그램부터 CPU를 사용하게 할까? =>..
[CS] 입출력장치 장치 컨트롤러와 장치 드라이버 입출력장치 정보 주고받기입출력 장치는 CPU나 메모리에 비해서 조금 더 다루기가 까다롭다. 입출력장치에는 종류가 너무나도 많다.장치가 다양하면 장치마다 속도, 데이터 전송 형식 등도 다양하다.다양한 입출력장치와 정보를 주고받는 방식을 규격화하기 어렵다. 일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력 장치의 데이터 전송률은 낮다.  전송률: 데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표  장치 컨트롤러이런 이유로 입출력장치는 장치 컨트롤러를 통해 컴퓨터와 연결된다.입출력장치는 장치 컨트롤러를 통해 컴퓨터 내부와 정보를 주고받는다. 역할CPU와 입출력장치 간의 통신중개(일종의 번역가 역할 수행)오류 검출데이터 버퍼링버퍼링: 전송률이 높은 장치와 낮은 장치 ..