CS/운영체제

CS/운영체제

[OS] 멀티레벨 피드백 큐 (MLFQ)

MLFQ 목적 짧은 작업을 먼저 실행하여 반환 시간을 최적화 대화형 시스템으로 사용자에게 빠른 응답을 제공하기 위해 반환 시간을 최적화 MLFQ는 동적으로 우선순위를 부여함으로써 위 목적을 달성한다. MLFQ 특징 여러 개의 큐를 가지고 있다. 각 큐는 서로 다른 우선순위를 갖는다. 준비 상태인 모든 프로세스들은 특정 큐에 들어있다. 때문에 두 개의 프로세스가 서로 다른 큐에 들어있다면 우선순위가 높은 큐에 들어있는 프로세스 먼저 실행한다. 만약 동일한 우선순위인 큐에 들어있다면 라운드 로빈 스케줄링으로 수행한다. 🙋🏻‍♀️ 그러면 어떻게 동적으로 우선순위를 부여하나요? 작업 진행 과정에서 작업의 정보를 얻고, 이 정보를 통해 예측한 미래 행동을 토대로 우선순위를 부여한다. 예시를 들어보자. 1. 키보드..

CS/운영체제

[OS] 벨레이디의 모순(Belady's anomaly)이란?

벨레이디의 모순에 대해 알기 위해서는 먼저 페이징에 대한 개념이 필요하다. 페이징프로세스가 사용하는 메모리 공간을 잘게 나누어 비연속적으로 실제 메모리에 할당하는 메모리 관리 기법으로, 이때 잘게 나눈 것의 단위가 페이지이다. 논리 주소 공간과 물리 주소 공간의 분리 : 주소의 동적 재배치 허용전용 하드웨어 MMU : 논리 주소와 물리 주소의 변환 페이징의 장점구현 용이높은 이식성 및 융통성메모리 활용 우수오버헤드 감소하나의 프로그램이 수행될 때, 한 번에 메모리에 올리지 않고 페이지 단위로 쪼개서 올리기 때문에 저장장치에서 일부만 불러와 사용 가능하다. ➡️ 여러 개의 프로그램을 메모리에 올릴 수 있다. ➡️ 메모리 용량보다 프로그램의 크기가 큰 경우에도 수행이 가능하다. ➡️ 프로세서의 가용률이 높아..

CS/운영체제

[OS] 스레드의 상태 변화와 구현

스레드란? 프로세스의 두 가지 특성인 자원과 제어 중 제어로 분리된 실행 단위 프로세스 == 한 개 이상의 스레드 스레드들은 프로세스의 직접 실행 정보를 제외한 나머지 관리 정보를 공유 다른 스레드와 코드, 전역 데이터, 힙을 공유 스택은 독립적으로 소유 ➡️ 응용 프로그램에는 적어도 하나의 프로세스가 있고, 프로세스는 적어도 하나의 스레드로 이루어져 있다. 스레드 사용 시 이점 사용자 응답성 증가 : 병렬 프로그래밍으로 다중 스레드를 적용한 브라우저는 스레드가 한 개가 파일을 로딩하는 동안 다른 스레드는 사용자와 상호작용 프로세스의 자원과 메모리 공유 가능 : 하나의 주소 공간에서 시스템 성능 향상 경제성이 좋음 : 스레드를 생성하여 문맥을 교환하면 오버헤드 감소 다중 처리로 성능과 효율 향상 : 각 ..

CS/운영체제

[OS] 프로세스의 상태 변화와 관리

프로세스란? 실행 중인 프로그램 비동기적 행위 실행 중인 프로시저 운영체제에 들어있는 프로세스 제어 블록 ➡️ 디스크에 있던 프로그램을 메모리에 적재하여 운영체제의 제어를 받는 상태 (자신만의 메모리 공간이 있음을 의미) ex) 웹 브라우저 창을 한 개 열면 프로세스 한 개, 창을 두 개 열면 프로세스 두 개 프로세서 점유 시간, 메모리, 파일, 입출력장치 같은 자원은 프로세스를 생성하거나 실행할 때 할당 스택 데이터를 일시적으로 저장하는 영역 (지역변수에 사용) 호출한 함수의 반환 주소, 반환 값, 매개변수 등에 사용 함수를 호출하면 생성되고, 반환하면 소멸 힙 코드 영역과 별도로 유지되는 자유 영역 동적으로 메모리를 할당하기 위해 사용한 후 해제 데이터 프로그램의 가상 주소 공간 전역변수나 정적변수를..

CS/운영체제

[OS] 운영체제의 서비스와 구조

운영체제의 서비스 1. 부팅 서비스 컴퓨터 하드웨어를 관리하고 프로그램을 실행할 수 있도록 컴퓨터에 시동을 검 운영체제를 메인 메모리에 적재 시스템 장치 초기화, 시간 설정, 명령 해석기 적재 및 준비 2. 사용자 서비스 프로그래머가 프로그래밍 작업을 쉽게 수행할 수 있도록 함 사용자 인터페이스 제공 ➡️ 프로그램 실행 ➡️ 입출력 동작 수행 ➡️ 파일 시스템 조작 ➡️ 네트워크 통신 ➡️ 오류 방지 3. 시스템 서비스 자원 할당 : 다수의 사용자나 작업을 동시에 실행할 때 자원을 각각 할당하고 관리 계정 : 각 사용자가 자원을 얼마나 사용하는지에 대한 정보를 저장하고 추적 보호와 보안 : 사용자가 다수인 컴퓨터 시스템에서 여러 프로세스를 동시 실행하려면 서로의 활동에서 프로세스를 보호 4. 시스템 호출..

CS/운영체제

[OS] 운영체제의 유형

1. 운영체제의 발전 과정 연도 운영체제 특징 1940년대 운영체제 없음 - 기계어를 직접 사용 - 단순 순차 처리 1950년대 일괄 처리 시스템 - 운영체제의 효시인 IBM 701 개발 - 작업별로 일괄 처리 1960년대 - 다중 프로그래밍 시스템 - 시분할 시스템 - 다중 처리 시스템 - 실시간 처리 시스템 - 가상 기억장치 등장 - 다중 프로그램, 다중 처리, 시분할 처리 - 운영체제를 고급 언어로 작성 - 데이터 통신 지원용 운영체제 사용 1970년대 초반 - 다중 모드 시스템 - 범용 시스템 - 일괄 처리, 시분할 처리, 실시간 처리 - 장치의 독립성 제공 - TCP/IP 통신 표준 활성화 1970년대 중반 분산 처리 시스템 - 응용 프로그램 개발 및 DB 활용 확대 - 네트워크 기술 발전 - ..

CS/운영체제

[OS] 운영체제의 개념과 기능

운영체제란 사용자와 하드웨어 사이에서 응용 프로그램의 실행을 제어하고 자원을 할당 및 관리하며, 입출력 제어 및 데이터 관리와 같은 서비스를 제공하는 소프트웨어이다. 운영체제의 개념과 발전 목적 1. 운영체제의 개념 운영체제는 사용자가 하드웨어에 접근할 수 있는 유일한 수단 사용자가 응용 프로그램을 실행할 수 있는 기반 환경을 제공하여 컴퓨터를 편리하게 사용할 수 있도록 도와줌 운영체제의 구성 사용자 : 어떤 일을 수행하려고 컴퓨터를 사용하는 사람 소프트웨어 : 컴퓨터가 기능을 수행하는데 필요한 모든 프로그램 시스템 소프트웨어 : 컴퓨터의 자원을 관리하고 응용 프로그램의 실행을 지원하여 컴퓨터를 제어하는 프로그램 유틸리티 : 응용 프로그램보다 작지만 컴퓨터의 여러 처리 과정을 보조하여 성능을 개선하는 프..

CS/운영체제

[OS] 컴퓨터 시스템의 동작

컴퓨터 시스템의 동작 입력장치로 정보를 입력받아 메모리에 저장한다. 메모리에 저장한 정보를 프로그램 제어에 따라 인출하여 연산장치에서 처리한다. 처리한 정보를 출력장치에 표시하거나 보조기억장치에 저장한다. 📍 1. 명령어의 구조 프로세서가 실행할 연산인 연산 부호와, 명령어가 처리할 데이터, 데이터를 저장한 레지스터나 메모리 주소인 피연산자로 구성된다. 연산 부호 : 프로세서가 실행할 동작인 연산을 지정한다. 피연산자 : 연할 데이터 정보를 저장한다. 피연산자의 위치를 명시하는 방법을 나타내는 모드 비트를 추가하거나, 명령어의 위치를 나타내는 주소를 추가할 수 있다. 주소를 추가하는 방법에는 직접 주소와 간접 주소가 있다. 모드가 0이면 직접 주소, 1이면 간접 주소이다. 직접 주소의 경우 피연산자가 알..

yo0oni
'CS/운영체제' 카테고리의 글 목록