운영체제(OS; Operating System)
소프트웨어
- 시스템SW:
운영체제
- 응용SW
정의 - 시스템의 자원을 효율적으로 관리, 편리하고 효과적으로 사용할 수 있도록 환경 제공
목적(기준) - 처리 능력 향상, 반환 시간 단축, 사용 가능도 향상, 신뢰도 향상
기능 - 프로세서, 기억장치, 입출력 장치, 파일 및 정보 등의 자원 관리
종류 - Windows, UNIX, LINUX, MacOS
Windows
개요
- GUI, 선점형 멀티태스킹(강제종료 가능)
- PnP: 자동 감지 기능(프린터, USB 등)
- OLE: 다른 여러 응용 프로그램에서 작성된 문자나 그림 등의 개체를 현재 작성 중인 문서에 자유롭게 연결하거나 삽입하여 편집 가능
UNIX/LINUX/MacOS
UNIX 개요 및 특징
- 대화식 운영체제
- 다중 사용자(Multi-User, 다중 작업(Multi-Tasking)
- 트리 구조의 파일 시스템
UNIX 시스템 구성 - 커널(kernel): UNIX의 가장 핵심적인 부분, 주기억장치에 적재된 후 상주하면서 실행
- 쉘(Shell): 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기,
파이프라인
기능 지원
—기억장치 관리
개요
- 기억장치는 레지스트, 캐시 기억장치, 주기억장치, 보조기억장치와 같이 계층 구조로 분류
기억장치 관리 전략
- fetch(반입 전력)
- 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지 결정
- 요구 반입(Demand Fetch): cpu가 직접 요구할 때 적재
- 예상 반입(Anticipatory Fetch): 미리 예상해서 주기억장치에 적재
- 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지 결정
- Placement(배치 전략)
- 주기억장치의 어디에 위치시킬 것인지 결정
- 최초 적합(First Fit): 빈 영역 중에서 첫 번째 분할 영역 배치
- 최적 적합(Best Fit): 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역 배치
- 최악 적합(Worst Fit): 단편화를 가장 많이 남기는 분할 영역에 배치
- 주기억장치의 어디에 위치시킬 것인지 결정
- Replacement(교체 전략)
- 주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고 할 때, 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략.
- FIFO, LRU, LFU, NUR 기법 등이 존재
- 주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고 할 때, 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략.
주기억장치 할당 기법
개념
- 연속 할당 기법: 연속으로 할당하는 기법, 단일 분할 할당과 다중 분할 할당 기법이 있다.
- 분산 할당 기법: 사용자 영역을 분할하여 할당함. 페이징 기법, 세그멘테이션 기법이 존재
가상기억장치 구현 기법
개요
- 보조기억장치(하드)의 일부를 주기억장치처럼 사용하는 것
- 주기억장치의 용량보다 큰 프로그램을 실행
- 주기억장치의 이용률과 다중 프로그래밍의 효율을 높을 수 있음.
페이징(Paging) 기법
- 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램(페이지)을
동일하게 나눠진
주기억장치의 영역(페이지 프레임)에 적재시켜 실행하는 기법. - 내부단편화는 발생할 수 있되 외부단편화는 발생하지 않음.
세그멘테이션(Segmentation) 기법
- 프로그램을
다양한 크기의 논리적인 단위
로 나눈 후 주기억장치에 적재시켜 실행 - 외부단편화는 발생할 수 있지만 내부단편화는 발생하지 않음
가상기억장치 기타 관리 사항
페이지 크기
- 작을 경우: 페이지 맵 테이블의 크기가 커지고, 매핑 속도가 늦어짐
- 클 경우: 페이지 맵 테이블의 크기가 작아지고, 매핑 속도가 빨라짐.
Locality - 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질.
- 워킹 셋(Working Set)
- 데닝이 제안한 프로그램의 움직임에 대한 모델, 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합.
- 워킹 셋은 시간에 따라 변경됨.
프리페이징(Prepaging) - 페이지 부재를 방지하기 위해 필요할 것 같은 모든 페이지를 한꺼번에 페이지 프레임에 적재하는 기법.
스래싱(Thrashing) - 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
- 다중 프로그래밍의 정도가 높아짐에 따라 하나의 프로세스 수행 과정중 자주 페이지 부재가 발생함으로써 나타나는 현상
-