Computer Science/운영체제 12

운영체제 정리 ::

운영체제에서 기억하고 싶은 내용 운영체제란?? 운영체제는 응용 소프트웨어와 하드웨어 사이의 매개체 역할을 한다 대표적인 시스템 소프트웨어다 컴퓨터 시스템의 자원을 관리한다 컴퓨터 프로그램의 서비스를 제공하는 프로그램들의 모음이다 운영체제 역할 컴퓨터 시스템 자원 관리와 사용자 지원을 한다 1. 컴퓨터 시스템 자원 관리 역할 자원이란 하드웨어 자원, 소프트웨어 자원 그리고 데이터가 있다 저장장장치에서 데이터를 읽어 오는 역할을 한다 키보드, 마우스 제어 역할을 한다 동시에 여러 프로그램 실행시 CPU와 메모리를 효율적으로 관리한다 => 컴퓨터 시스템을 효율적으로 운영하려는 목적이다 2. 사용자 지원의 역할 사용자가 내린 명령을 해석해서 실행한다(CLI) 사용자와 하드웨어 사이의 매개체가 된다 => 사용자에..

운영체제 12강 :: 저장장치, 디스크 스케줄링

운영체제에서 기억하고 싶은 내용 저장장치의 종류 순차 접근 저장장치, 직접 접근 저장장치 순차접근 저장장치 데이터를 순차적으로 읽고 쓰는 저장 장치 테이프로 되어 있어 접근 시간이 오래 걸린다 대용량 데이터 백업용으로 사용 직접 접근 저장장치 저장 위치를 직접 찾아서 데이터를 읽고 쓰는 저장장치 '임의 접근 저장장치'라고도 한다 자기 디스크, 광디스크, SSD에 사용된다 자기 디스크 디스크 표면에 자성의 성질을 변화시켜서 데이터를 읽거나 쓴다 이를 위해 트랙, 헤더, 암, 고정장치 등 부품이 있다 SSD 전력 공급이 없어도 데이터가 안지워지는 메모리 이용한다 자기 디스크보다 훨씬 속도가 빠르고, 모터를 돌리지 않기에 전력 소모도 적다 비싸지, 가격이 쎄고 수명이 짧다 노트북 같은 곳에는 좋을 듯 크기도 ..

운영체제 11강 :: 장치, 입출력 처리, 입출력 관리

운영체제에서 기억하고 싶은 내용 장치 CPU, 메모리: 프로세스에 필요한 장치 나머지 장치: 전용장치, 공용장치, 가상장치 1. 전용 장치 한 번에 하나의 프로세스에만 할당 프린터 같은 장치는 한 번에 하나의 프로세스만 있어야겠지 단점 대기시간이 길어질 수 있다 2. 공용 장치 여러 프로세스 동시 할당 가능 하드 디스크 같은 것이 직접 접근 저장 장치 스케줄링 기법이 필요하다 3. 가상 장치 전용 장치을 공용 장치처럼 보이게 한다 방법 디스크 같은 공용 장치를 활용한다 공용 장치가 중간에서 교통 정리 해주는 느낌이네 장치의 구성 논리적 구성 장치 제어기 장치를 직접적으로 다루는 전자 장치 운영체제가 보내는 출력을 장치에 맞게 변형 장치 드라이버 입출력 요청을 해당 장치에 맞도록 변환 보통 장치 제조사에서..

운영체제 10강 :: 페이지 교체 알고리즘, 프로세스 집합

운영체제에서 기억하고 싶은 내용 페이지 교체 알고리즘 페이징 기법이라고 부르는듯 하다 새로 페이지를 적재해야 하는데, 모든 페이지 프레임이 사용되고 있네? 그럼 페이지 프레임에서 교체할 대상을 결정해야 하지 그 때 사용되는 기법이다 FIFO, LRU, LFU, 2차 기회 페이지 교체 등이 있다 최적화의 원칙 교체 대상 선택 방법으로 완벽한 방법이 있다 가장 오랫동안 사용되지 않을 페이지를 선택하는 방법이다 하지만 이론적으론 완벽하지만, 미래를 예측할 수 없어 실현이 불가능하다고 한다 교체 제외 페이지 교체를 하지 말아야 페이지들도 있다 어차피 필요한 영역은 교체하지 않는게 효율적일 것 페이징을 위한 커널 코드 영역 보조기억장치 드라이버 영역 입출력장치를 위한 데이터 버퍼 영역 ... 등 FIFO(Firs..

운영체제 9강 :: 가상메모리, 블록사상시스템, 블록구성방식

운영체제에서 기억하고 싶은 내용 가상 메모리 가상 메모리를 이용하면 메모리 크기보다 더 큰 기억공간이 필요한 프로세스도 실행할 수 있다 현재 필요한 부분만 실제 메모리에 적재해서 사용할 때 가상 메모리를 이용할 수 있다 사상(Mapping) 가상주소를 실주소로 변환하는 과정 동적 주소변환(DAT): 프로세스가 실행되는 동안 사상되는 것 인위의 연속성이란 말은 가상 주소 공간에서 연속적인 주소가 실주소 공간에서 연속일 필요가 없다는 의미 주소변환 사상표 가상 메모리에서 실제 메모리 주소 변환을 위해 정보가 담긴 표를 주소변환 사상표라고 한다 바이트나 워드 단위로 주소를 변환하게 되면 정보량이 너무 많아서 비효율적이다 그럼 이것들을 조금 묶어서 사상을 하는 것이 '블록 사상 시스템'이다 블록 사상 시스템 말..

운영체제 8강 :: 메모리관리자, 메모리분할, 메모리배치

운영체제에서 기억하고 싶은 내용 메모리 관리자가 하는 일 메모리 호출 언제 새로운 프로세스 메모리에 둘까 메모리 배치 메모리 어디에 둘까 메모리 교체 메모리 꽉 찼을 때 어떤 프로세스 제거할까 그 외 고정/동적 분할, 고정 유동 적재 영역 등 단일 프로그램 환경 하나의 프로세스가 메모리를 전용으로 사용하는거 연속된 블록으로 메모리에 할당 문제점 메모리 용량을 초과하는 프로세스 실행 못한다 지속적이지 않은 프로세스도 적재되어 있어 메모리 낭비 심하다 주변장치 등 자원 낭비 심하다 다중 프로그래밍 환경 우리가 사용하는 거 여러 개의 프로세스가 메모리에 동시에 적재 CPU 연산과 입출력 동시에 사용 => CPU 이용도와 시스템 처리량 증가 메모리 분할의 고민이 생겼지 메모리 고정 분할 메모리를 여러 개의 고정..

운영체제 7강 :: 교착상태 회피, 탐지 및 복구

운영체제에서 기억하고 싶은 내용 교착상태 회피 자원 사용에 대한 사전 정보를 활용해서, 교착 상태가 발생하지 않는 상태로 머물도록 한다 사전 정보란? 현재 할당된 자원 가용상태의 자원 프로세스의 초대 요구량 안전상태와 안전순서열 안전 상태 교착상태를 회피하면서 각 프로세스 최대 요구량까지 자원을 할당할 수 있는 상태 안전순서열 존재하는 경우 불안전 상태 안전순서열이 존재하지 않는 경우 교착 상태는 불안전 상태에서만 발생한다 항상 안전상태 유지해야 한다 가용상태의 자원을 요구해도 프로세스가 대기 상태가 될 수 있다 단점: 자원 이용율은 조금 낮아질 수 있다 /* 교착상태 회피 알고리즘 */ 각 자원의 단위 자원이 하나인 경우 변형된 자원할당 그래프 각 자원의 단위 자원이 여러 개인 경우 은행원 알고리즘 교..

운영체제 6강 :: 교착상태 필요조건, 예방

운영체제에서 기억하고 싶은 내용 프로세스 자원 사용 절차 요구 -> 사용 -> 해제 요구 과정에서 가용한 자원 없으면 자원을 획득할 때까지 대기한다 교착 상태 여러 개의 프로세스가 상대방의 작업이 끝나기만 기다린다 어느 쪽도 영원히 진행하지 못하는 상태 교착 상태의 필요 조건 다음 네 가지 조건이 동시에 만족하면 교착상태 발생 가능하다 1. 상호배제 프로세스가 자원에 대해 배타적 통제권 요구 다른 프로세스가 점유한 자원 필요시 대기 필요 2. 점유대기(Hold and wait) 프로세스가 한 자원을 점유한 상태로 다른 자원 원할 시 대기 3. 비선점 할당된 자원은 타의에 의해 해제되지 않는다 4. 환형대기(Circular wait) 자원을 점유하고 점유된 자원의 요구 관계가 환형(원)을 이루며 대기 교착..

운영체제 5강 :: 생산자-소비자 문제, 프로세스 간 통신

운영체제에서 기억하고 싶은 내용 생산자-소비자 문제 정의 생산자: 데이터를 버퍼에 넣는 프로세스 소비자: 데이터를 버퍼에서 꺼내는 프로세스 조건 버퍼에 여러 프로세스가 동시에 접근할 수 없다 버퍼에 넣는 거나, 꺼내는 거나 동시에 접근할 수 없다 => 상호배제 필요하다 유한 버퍼 문제 버퍼가 가득 찬 경우 생산자는 대기해야 한다 버퍼가 빈 경우 소비자는 대기해야 한다 => 동기화 필요하다 세마포어를 이용해서 해결해볼까! 세 가지 세마포어를 사용 mutex로 동시 접속 못하도록, empty와 full로 뭘 했는지 이해는 안되네 생산자 코드 While(true) { 데이터 생산 P(empty); P(mutex); 버퍼에 데이터 넣는다 // 임계 영역 V(mutex); V(full); } 소비자 코드 Whil..

운영체제 4강 :: 병행 프로세스, 세마포어

운영체제에서 기억하고 싶은 내용 병행성(Concurrency) 여러 개의 프로세스 혹은 쓰레드가 동시 수행되는 시스템 특성 병행 프로세스 동시에 수행되고 있는 프로세스 CPU가 1개라도 병행 프로세스 작동 인터리빙 방식 하나의 CPU가 프로세스를 번갈아 가면서 병행처럼 보이게 처리 여러개의 CPU 병렬처리 방식 각 CPU가 각 프로세스 처리 뭐야 병행 프로세스가 멀티 프로세서가 되겠네? 멀티 프로세서 메모리 구조 강결합 시스템 여러 CPU가 하나의 메모리 공유 같은 메모리를 사용해서 정보를 공유할 수 있겠다 약결합 시스템 CPU 마다 메모리가 별도로 존재 정보 주고 받으려면 통신을 통해서만 가능 독립 프로세스 vs 협력 프로세스 독립 프로세스 다른 프로세스에 영향을 주지도 받지도 않는다 데이터, 상태를 ..

728x90