1. 운영체제의 개념
운영체제의 개념
- 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
- 인터페이스로 동작하는 시스템 소프트웨어의 일종
- 프로세스, 기억장치, 주변 장치, 파일 등을 관리하는 기능을 수행한다.
- 운영체제의 종류
- Windows, UNIX, Linux, MacOS, MS-DOS 등
운영체제의 목적
- 처리능력 향상, 사용가능도 향상, 신뢰도 향상, 반환 시간 단축
- 처리능력 : 일정 시간 내에 시스템이 처리하는 일의 양
- 반환시간 : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
- 사용 가능도: 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
- 신뢰도 : 시스템이 주어진 문제를 정확하게 해결하는 정도
2. 운영체제의 종류
Windows
- 1990년대 마이크로소프트 사가 개발한 운영체제
UNIX
- AT&T 벨(BELL) 연구소, MIT, General Electronic이 공동 개발한 운영체제
- 시분할 시스템을 위해 설계된 대화식 운영체제
- 대부분 C언어로 작성 되어있어 이식성이 높으며 프로세스간 호환성이 높다.
- 트리 구조의 파일 시스템을 갖는다.
UNIX 시스템의 구성
- 커널
- 하드웨어를 보호하고, 프로그램과 하드웨어 인터페이스 담당한다.
- 프로세스 관리, 기억 장치 관리, 파일 관리, 입출력 관리 등 여러 기능을 수행한다.
- 쉘
- 사용자의 명령어 인식, 프로그램 호출, 명령을 수행하는 명령어 해석기
- 시스템과 사용자간 인터페이스 담당한다.
- 유틸리티 프로그램
- 일반 사용자가 작성한 응용 프로그램을 처리하는데 사용한다.
- DOS에서의 외부 명령어에 해당된다.
Linux
- 리누스 토발즈가 UNIX를 기반으로 개발한 운영체제
- 소스코드 무료로 공개되어 있기 때문에 프로그래머가 원하는 기능을 추가할 수 있다.
MacOS
- 애플사가 UNIX를 기반으로 개발한 운영체제
Android
- 구글 사에서 개발한 리눅스 커널 기반의 개방형 모바일 운영체제
- 자바와 코틀린으로 애플리케이션을 작성한다.
iOS
- 애플 사에서 개발한 유닉스 기반의 모바일 운영체제
3. 기억장치 관리
기억장치의 관리 전략
- 보조기억장치의 프로그램이나 데이터를 주기억 장치에 적재 시키는 시기, 적재 위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것
- 종류
- 반입 전략
- 배치 전략
- 교체 전략
반입(Fetch)전략
- 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략
- 기법
- 요구 반입(Demand Fetch)
- 실행 중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법
- 예상 반입(Anticipatory)
- 실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법
- 요구 반입(Demand Fetch)
배치(Placement) 전략
- 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정 하는 전략
- 기법
- 최초 적합(First Fit)
- 빈 영역 중에서 첫번째 분할 영역에 배치
- 최적 적합(Best Fit)
- 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치
- 최악 적합(Worst Fit)
- 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치
- 최초 적합(First Fit)
교체(Replacement) 전략
- 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략
- 종류 : FIFO, OPT, LRU, LFU, NUR, SCR 등
4. 주기억장치 할당 기법
주기억장치 할당
- 프로그램이나 데이터를 실행시키기 위해 주기억 장치에 어떻게 할당할 것인지를 결정하는 기법
- 주기억장치 할당 기법의 종류
- 연속할당 기법
- 프로그램을 주기억장치에 연속으로 할당하는 기법
- 종류 : 단일 분할 할당 기법, 다중 분할 할당 기법
- 분산할당 기법
- 프로그램을 특정 단위의 조각으로 나누어 주기억 장치 내에 분산하여 할당하는 기법
- 가상기억장치의 내용을 주기억장치에 할당하기 위한 기법으로, 가상기억장치 관리 기법이라고도 한다.
- 종류 : 페이징 기법, 세그먼테이션 기법
- 연속할당 기법
단일 분할 할당 기법
- 한순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 기법
- 가장 단순한 기법, 초기의 운영체제에서 많이 사용하던 기법
- 운영체제를 보호하고, 프로그램이 사용자 영역만을 사용하기 위해 운영체제 영역과 사용자 영역을 구분하는 경계 레지스터가 사용된다.
- 경계 레지스터
- 사용자 영역에 있는 사용자 프로그램이 운영체제 영역에 접근하지 못하도록 보호하는 레지스터
- 사용자 영역이 시작되는 주소를 기억하고 있다.
- 경계 레지스터
- 프로그램의 크기가 작을 경우, 사용자 영역이 낭비될 수 있다.
- 오버레이
- 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법
- 스와핑
- 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다가 필요에 따라 다른 프로그램과 교체하는 기법
다중 분할 할당 기법
- 고정 분할 할당 기법
- 프로그램을 할당하기 전에 운영체제가 주기억장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고, 준비상태 큐에서 준비중인 프로그램을 각 영역에 할당하여 수행하는 기법
- 가변 분할 할당 기법
- 주기억 장치를 미리 분할해 놓지 않고, 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분리하는 기법
- 고정 분할 할당 기법의 단편화를 줄이기 위해 사용된다.
5. 가상기억장치 구현 기법
가상기억장치
- 보조기억장치의 일부를 주기억장치처럼 사용하는 것으로, 용량이 작은 주기억 장치를 마치 큰 용량을 가진 것처럼 사용하는 기법
- 프로그램을 여러 개의 작은 블록 단위로 나누어서 가상기억장치에 보관해 놓고, 프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리한다.
- 다중 프로그래밍의 효율을 높일 수 있다.
- 연속 할당 방식에서 발생할 수 있는 단편화를 해결할 수 있다.
페이징 기법
- 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후, 주기억장치의 영역에 적재시켜 실행하는 기법
- 외부 단편화는 발생하지 않으나, 내부 단편화는 발생할 수 있다.
세그먼테이션 기법
- 프로그램을 다양한(가변적) 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법
- 내부 단편화는 발생하지 않으나, 외부 단편화는 발생할 수 있다.
6. 페이지 교체 알고리즘
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 실기 요약 정리 프로그래밍 언어 활용(추후에 포스팅) (0) | 2023.07.21 |
---|---|
[정보처리기사] 실기 요약 정리 소프트웨어 개발 보안 구축 (0) | 2023.07.20 |
[정보처리기사] 실기 요약 정리 SQL 응용 (3) | 2023.07.20 |
[정보처리기사] 실기 요약 정리 애플리케이션 테스트 관리 (3) | 2023.07.20 |
[정보처리기사] 실기 요약 정리 화면 설계 (7) | 2023.07.19 |