D-5. 연휴지만 공부 on.
Operating System. 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램들의 모임.
컴퓨터 사용자와 하드웨어간의 인터페이스.
CPU, 메모리, 입출력장치 등의 자원을 관리한다.
1960년대 AT&T 벨 연구소, MIT, GE가 공동 개발한 운영체제
시분할 시스템을 위해 설계된 대화식 운영체제.
대부분 C언어로 되어있어 이식성이 높으며 장치 프로세스간 호환성이 높다.
트리 구조의 파일 시스템을 갖는다.
커널(Kernel)
유닉스의 핵심. 하드웨어를 보호하고 프로그램과 하드웨어간 인터페이스 역할을 담당한다.
컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행된다.
프로세스관리, 기억장치 관리, 파일 관리, 데이터 전송 등의 기능을 수행
쉘(Shell)
사용자의 명령어를 인식해 프로그램을 호출하고 명령을 수행하는 명령어 해석기. 시스템과 사용자 간의 인터페이스를 담당.
1991년 리누스 토발즈가 UNIX를 기반으로 개발한 운영체제
대부분 UNIX와 동일.
소스코드가 무료로 공개되어있어 프로그래머가 원하는 대로 기능 추가 가능
구글에서 개발한 리눅스 커널 기반의 개방형 모바일 운영체제
자바와 코틀린으로 애플리케이션을 작성
휴대용 장치에서 주로 사용되는 운영체제
반입전략(Fetch). 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억 장치로 적재
할 것인지 결정하는 전략
배치전략(Placement). 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치
시킬 것인지를 결정하는 전략
최초 적합(First Fit)
: 사용하지 않은 빈 영역중 프로그램이나 데이터가 들어갈 수 있는 크기의 첫 번째
분할영역부터 배치최적 적합(Best Fit)
: 사용하지 않은 빈 영역중 프로그램이나 데이터가 들어갈 수 있는 크기에서 단편화를 가장 작게
남기는 분할 영역부터 배치시키는 방법최악 적합(Worst Fit)
: 사용하지 않은 빈 영역중 프로그램이나 데이터가 들어갈 수 있는 크기에서 단편화를 가장 많이
남기는 분할 영역부터 배치시키는 방법Virtual Memory. 보조기억장치의 일부를 주기억장치처럼 사용하는 것.
페이징(Paging) 기법
가상기억장치에 보관되어있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램을 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법
프로그램을 고정된 크기의 일정한 블록(페이지)으로 나눈다.
세그먼테이션(Segmentation) 기법
가상기억장치에 보관되어있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행하는 기법
프로그램을 가변적인 크기, 배열이나 함수 등과같은 논리적인 크기(세그먼트)로 나눈다.
페이지 부재(Page Fault)가 발생하면 가상기억장치에서 필요한 페이지를 찾아 주기억장치에 적재해야한다.
이때 주기억장치의 모든 페이지 프레임이 사용중이면 어떤 페이지 프레임을 선택해 교체할 것인지 결정하는 기법이 페이지 교체 알고리즘이다.
OPTimal replacement. 최적교체. 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 것.
벨레이디(Belady)가 제안.
각 페이지가 주기억장치에 적재될 때 마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래있었던 페이지를 교체하는 기법
최근 가장 오랫동안 사용하지 않은 페이지를 교체
사용 빈도가 가장 적은 페이지를 교체
실행중인 프로그램. 프로시저가 활동중인 것.
비동기적 행위를 일으키는 주체. PCB의 존재로서 명시되는 것.
프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질
스래싱 방지를 위한 워킹 셋 이론의 기반.
시간 지역성(Temporal Locality)
프로세스가 실행되면서 하나의 페이지를 일정시간동안 집중적으로 엑세스하는 현상
공간 지역성(Spatial Locality)
프로세스 실행 시 일정 위치의 페이지를 집중적으로 엑세스하는 현상
프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상이 줄어들어 프로세스의 기억장치 사용이 안정된다.
프로세스의 처리시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
페이지폴트가 자주 발생해 전체 시스템의 성능이 저하
프로세스 제어 블록. 운영체제가 프로세스에 대한 중요한 정보를 저장해놓는 곳
준비 - 대기 - 실행
Dispatch : 준비상태에서 프로세서를 할당받아 실행상태로 전이되는 과정
Wake Up : 입출력작업이 완료되어 프로세스가 대기에서 준비상태로 전이되는 과정
Spooling(스풀링) : 입출력 데이터를 직접 입출력장치에 보내지 않고 나중에 한꺼번에 입출력하기위해 디스크에 저장하는 과정
시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위
프로세스 내에서 작업 단위
프로세스의 일부 특성을 가져 경량 프로세스라고도 한다.