[정처기 실기] 「3」 | 운영체제 - (3.1) 운영체제(1)
「1」 소프트웨어 구축
「2」 데이터베이스 구축
> 「3」 운영체제
「4」 네트워크
「5」 정보보안
「6」 신기술 용어
> 1. 운영체제
1. 운영체제
운영체제 기초
기억장치
○ 데이터, 프로그램, 연산의 중간 결과 등 일시적 / 영구적을 저장하는 장치
○ 기억장치의 종류
- 레지스터 : 중앙처리장치(CPU) 내부에 위치, 메모리 중 가장 빠른 속도
- 캐시 메모리 : SRAM을 이용하여 CPU와 주기억장치 사이의 속도 격차를 줄이기 위해 사용, 캐시 적중률 ↑ 처리속도 ↑
- 가상 메모리 : 보조기억장치를 주기억장치처럼 사용, 큰 프로그램 실행 가능, 매핑 방식 필요
- 플래시 메모리 : MP3, 디지털카메라 등에 사용되는 EEPROM, 비휘발성
- 버퍼 메모리 : 데이터를 일시적으로 저장해 두 장치 간 데이터 전송 속도 차이 해결
- 주기억장치 : CPU가 직접 접근하여 데이터 읽고 쓸 수 있는 장치
: RAM - 휘발성, 실행 중인 프로그램 저장
. SRAM(정적) : 속도 빠름, 집적도 낮음, 전력소모 많음, 재충전 불필요, 용도 캐시
. DRAM(동적) : 속도 느림, 집적도 높음, 전력소모 적음, 재충전 필요, 용도 주기억
: ROM - 비휘발성, CMOS SETUP으로 값 수정, HW / SW 중간의 펌웨어, 업데이트만으로 성능 향상,
부팅 시 먼저 동작하여 자체진단(POST) 실행, BIOS에 전원관리 / 시스템 암호(Windows 암호 X) / PnP 정보
. Mask ROM : 제조과정에서 저장된 ROM, 임의 수정 불가
. PROM : 한 번에 기록 가능, 이후 읽기만 가능
. EPROM : 자외선 신호를 이용한 ROM
. EEPROM : 전기 신호를 이용한 ROM(플래시 메모리), BIOS ROM으로 활용 / 업데이트 가능
- 연관 메모리 : 기억된 내용의 일부를 이용하여 접근할 수 있는 기억장치, 매핑 방식, 주소가 아닌 내용을 참조
- 보조기억장치 : 주기억장치에 비해 접근 시간은 느리지만, 기억 용량은 큼
- SSD : 기계적인 움직임이 없는 반도체 기반의 저장 장치
=> 처리 속도 : 레지스터 > 캐시 메모리 > 주기억장치 > 보조기억장치
시스템 소프트웨어
○ 응용 소프트웨어를 실행하기 위한 플랫폼 제공
○ 종류
- 로더 : 프로그램을 메모리에 적재
- 링커 : 목적 파일을 실행 파일로 변환
- 유틸리티 : 하드웨어, 운영체제, 응용 소프트웨어 관리를 지원
- 번역기 : 프로그래밍 언어를 다른 언어로 변환
- 장치 드라이버 : 특정 하드웨어나 장치를 제어
- 운영체제 : 하드웨어 관리와 통신 등 다양한 기능을 제공
○ 시스템 소프트웨어의 구성
- 제어 프로그램
: 감시 프로그램 - 프로그램 실행과 시스템 상태를 감시 / 감독
: 작업관리 프로그램 - 스케줄 관리 / 시스템 자원 할당을 담당
: 데이터 관리 프로그램 - 데이터 전송 / 파일 조작을 관리
- 처리 프로그램
: 서비스 프로그램 - 사용 빈도가 높은 프로그램
: 문제 프로그램 - 특정 업무를 해결하기 위한 프로그램
: 언어 번역 프로그램 - 어셈블러, 컴파일러, 인터프리터
운영체제
○ 응용 프로그램이 하드웨어를 제어하여 실행될 수 있도록 관리하는 소프트웨어
○ 운영체제의 기능
- 프로세스 관리
- 메모리 관리
- 파일 관리
- 입출력 관리
- 보조기억장치 관리
- 네트워킹
- 정보 보안 관리
- 명령해석 시스템
○ 운영체제 운용 기법
- 일괄 처리 시스템(Batch Processing)
- 실시간 처리 시스템(Real-Time Processing)
- 다중 프로그래밍 시스템(Multi-Programming)
- 시분할 시스템(Time Sharing)
- 다중 처리 시스템(Multi-Processing System)
- 다중 모드 시스템(Multi-Mode)
- 분산 처리 시스템(Distribute Processing)
○ 운영체제 성능 평가 기준
- 처리량(Throughput)
- 반환시간(Turnaround Time)
- 신뢰도(Reliability)
- 사용 가능도(Availability)
- 확장성(Scalability)
- 보안(Security)
- 자원 활용도(Resource Utilization)
운영체제의 종류
○ 윈도우(Windows)
- 마이크로소프트사에서 개발한 운영체제, MS-DOS에 멀티태스킹 기능과 GUI 환경 제공
- GUI 제공, 선점형 멀티태스킹 방식, 자동감지 기능 제공, OLE
○ 리눅스(Linux)
- 1991년 리누스 토발즈에 의해 개발된 오픈소스 유닉스 호환 운영체제
- 다중 사용자 시스템, 오픈 소스, 파일 시스템(EXT), 이식성 / 유연성 / 확장성, 다양한 배포판 존재
○ 유닉스(Unix)
- 유닉스의 개요
: 1969년 미국 AT&T 벨연구소에서 켄 톰슨이 개발한 운영체제, 커널 / 쉘로 구성
: 시분할 시스템, 이식성, 다중 사용자 / 작업 지원, 네트워킹, 파일 시스템, 개발 용이성, 다양한 유틸리티 프로그램
- Unix 시스템의 구성
: 커널(Kernel) - Unix의 가장 핵심적인 부분, 하드웨어 보호, 프로그램 / 하드웨어 간 인터페이스 역할
: 쉘(Shell) - 명령어 해석기, 초기화 파일을 이용하여 사용자 환경 설정, 시스템 / 사용자 간 인터페이스 역할
: 유틸리티 프로그램 - 에디터, 컴파일러, 인터프리터, 디버거
- Unix 파일 시스템
: Unix 파일 시스템의 구조
. 부트 블록 : 부팅 시 필요한 코드가 저장
. 슈퍼 블록 : 전체 파일 시스템에 대한 정보가 저장
. I-node 블록 : 파일이나 디렉터리에 대한 모든 정보가 저장
. 데이터 블록 : 실제 파일 데이터가 저장
- 파일 디스크립터(FD, File Descriptor) : 유닉스 시스템에서 프로세스가 파일에 접근할 때 사용
- POSIX(Portable Operating System Interface) : 이식 가능한 운영체제 인터페이스
○ MacOS / IOS
- 애플이 개발한 유닉스 기반의 운영체제
○ Android
- 구글이 리눅스 커널 기반으로 개발한 개방형 모바일 운영체제
운영체제별 파일 시스템
○ 파일 시스템 : 컴퓨터 시스템에서 데이터를 저장하고 검색하는 방법을 정의하는 데 사용되는 구조와 규칙의 집합
○ 운영체제별 파일 시스템
- Windows : NTFS, FAT32
- MacOS : APFS, HFS+
- Linux : Ext4, Btrfs
- Unix : UFS
운영체제의 명령어
○ Unix 주요 명령어
- access : 파일 접근 가능 여부 결정
- chmod : 접근권한 변경
- close : FCB 닫기
- chgrp : 파일의 그룹 변경
- chown : 파일의 소유자 변경
- chdir : 디렉터리 변경
- mkdir : 디렉터리 생성
- rmdir : 디렉터리 삭제
- mount : 다른 파일 시스템 연결
- umount : 파일 시스템 제거
- exit : 프로세스 종료
- kill : 프로세스 제거
- fork : 프로세스 생성
- getpid : 자신의 프로세스 정보
- getppid : 부모의 프로세스 ID
- sleep : 일정시간 중단
- uname : 운영체제의 버전
- ps : 프로세스 상태 출력
- exec : 프로그램 실행
- vi : 명령 편집기
- cat : 파일의 내용을 화면에 출력
- rm : 파일 삭제
- cp : 파일 복사
- mv : 파일 이동
- grep : 검색
- ls : 파일목록 확인
- du : 파일의 용량 출력
- finger : 사용자 정보
○ Linux, Unix 파일 접근 권한 관리
- 필드별 의미 : - rwx rw- r-- | File or Folder or link, Owner, Group, Other
메모리 관리
기억장치 관리 전략
○ 보조기억장치에 저장된 프로그램이나 데이터를 주기억장치에 언제, 어디에 적재할지를 결정하는 방법
○ 기억장치 관리 전략
- 반입(Fetch) 전략 : 언제 주기억장치로 적재할 것인지를 결정하는 전략
: 요구반입, 예상반입
- 배치(Placement) 전략 : 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략
: 최초 적합(First Fit), 최적 적합(Best Fit), 최악 적합(Worst Fit)
- 교체(Replacement) 전략 : 새로운 프로그램이나 데이터를 위해 어떤 영역을 교체할지 결정하는 전략
: FIFO, OPT, LRU, LFU, NUR, SCR
주기억장치 할당 기법
○ 단일 분할 할당 기법 : 경계 레지스터를 사용해 운영체제 영역과 사용자 영역을 구분
- 오버레이(Overlay) : 필요한 조각만을 순서대로 주기억장치에 적재
- 스와핑(Swapping) : 필요에 따라 다른 프로그램과 교체하는 기법
○ 다중 분할 할당 기법 : 주기억장치를 여러 영역으로 나누어 프로그램을 할당
- 고정 분할 기법, 가변 분할 기법
단편화
○ 주기억장치에 프로그램 할당과 반납 과정에서 발생하는 빈 공간
○ 단편화의 종류
- 내부 단편화
- 외부 단편화
○ 단편화 해결 방법
- 통합(Coalescing) 기법 : 인접한 빈 분할 공간을 합침
- 압축(Compaction) 기법 : 분산된 여러 단편화된 공간들을 합침
- 재배치 기법(Relocation) : 프로그램의 주소를 새롭게 지정해 주는 기법
가상기억장치
가상기억장치
○ 보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는 기법
○ 블록 분할 방법
- 페이징(Paging) 기법 : 같은 크기의 블록(페이지)으로 편성하여 운용하는 기법, 내부 단편화
: 페이지 크기 ↓ - 맵 테이블 크기 ↑, 매핑 속도 ↓, 입출력 시간 ↑, 단편화 ↓, 이동시간 ↓, 워킹 셋 유지
: 페이지 크기 ↑ - 맵 테이블 크기 ↓, 매핑 속도 ↑, 입출력 시간 ↓, 단편화 ↑, 이동시간 ↑, 불필요 데이터 적재
- 세그멘테이션(Segmentation) 기법 : 크기가 다른 세그먼트로 분할하고 메모리를 할당, 외부 단편화
가상기억장치 기타 관리사항
○ 페이지 부재 : 프로세스 실행 중 필요한 페이지가 주기억장치에 없는 상황
○ 지역성(Locality) : 프로세스가 실행되는 동안 주기억장치에서 일부 페이지만 집중적으로 참조하는 성질
- 시간 구역성 : Loop(반복), Stack(스택), 부 프로그램(Sub Routine)
- 공간 구역성 : 배열 순회, 순차적 코드 실행
○ 워킹 셋(Working Set) : 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
○ 스래싱(Thrashing) : 프로세스 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
- 방지 방법 : 다중 프로그래밍 적정 수준 유지, 일부 프로세스 중단, 페이지 부재 빈도 조절, 워킹 셋 유지
페이지 교체 알고리즘
○ FIFO(First In First Out) : 가장 먼저 적재된 페이지를 교체
○ OPT(Optimal replacement, 최적 교체) : 미래에 가장 오랫동안 사용되지 않을 페이지를 교체
○ LRU(Least Recently Used) : 가장 오랫동안 사용되지 않은 페이지를 교체
○ LFU(Least Frequently Used) : 사용 빈도가 가장 적은 페이지를 교체
○ NUR(Not Used Recently) : 참조 비트와 변형 비트를 사용하여 최근 사용 여부를 확인
○ SCR(Second Chance Replacement) : FIFO의 단점을 보완한 기법
출처 | 흥달쌤
'💠기타 > 자격증' 카테고리의 다른 글
[정처기 실기] 「4」 | 네트워크 - (4.1) 네트워크(1) (1) | 2024.04.01 |
---|---|
[정처기 실기] 「3」 | 운영체제 - (3.2) 운영체제(2) (0) | 2024.03.31 |
[정처기 실기] 「2」 | 데이터베이스 구축 - (2.2) SQL 활용, 병행제어와 데이터 전환 (0) | 2024.03.29 |
[정처기 실기] 「2」 | 데이터베이스 구축 - (2.1) 데이터베이스 구축 (1) | 2024.03.29 |
[정처기 실기] 프로그래밍 문제 이론 - JAVA, Python (2) | 2024.03.29 |