운영체제(Operating System)
컴퓨터 시스템의 자원들을 효율적으로 관리,
사용자가 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
-> 처리 능력 향상, 신뢰성 향상, 응답시간의 단축, 자원 활용률 향상, 가용성 향상
운영체제의 분류
-> Batch Processing System : 일괄처리
-> Multi Programming System : CPU가동률 극대화, 스케줄링에 의해 작업 수행
-> Time Sharing / Multi-tasking System : 멀티 프로그래밍의 논리적 확장
-> Multi-Processing System : 가용성 증대를 위한 여러 개의 CPU를 활용한 다중작업 가능
-> Real-time System : 시간에 제약을 두어 즉시 처리하고 결과를 출력
-> Multi-Mode Processing : 일괄처리, 시분할, 다중처리, 실시간 처리를 한 시스템에서 모두 제공
-> Distributed System : 독립적 운영체제가 네트워크 등을 이용해 협업
운영체제의 주요 자원 관리
- 프로세스
- 기억장치
- 주변장치
- 파일
프로세스(Process)
프로세서에 의해 수행되는 프로그램의 단위로, PCB를 가진 프로그램 (집합)
스레드(Thread)
제어의 흐름, 프로세스에서 실행의 개념만을 분리한 것
프로세스 상태전이(Process State Transition)
프로세스 실행 결정 및 필요한 시스템 자원을 할당하는 과정(작업 스케줄러, 프로세스 스케줄러 사용)
준비상태 큐(FIFO) -> Dispatch -> CPU점유, 프로세스 실행 -> Wait -> 대기 -> Wake Up -> 준비 상태
-> Time Out -> 준비 상태
Dispatch : 준비 -> 실행
Timer Runout : 실행 -> 준비
Blocked : 실행 -> 슬립(대기)
Wake up : 슬립(대기) -> 준비
Release : 실행 -> 종료
문맥 교환(Context Switching)
프로세스 상태를 PCB에 저장하고, 또 다른 프로세스의 정보를 PCB에서 읽어 레지스터에 적재하는 과정
프로세스의 상태 변화가 될 때마다 발생
PCB(Process Control Block)
운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓은 곳
CPU 스케줄링
컴퓨터의 자원을 효율적을 사용하기 위한 정책을 계획하는 것 -> 순서를 정하는 일
선점(Preemptive) 스케줄링
프로세스가 CPU 점유 중에도 다른 프로세스가 CPU 점유 가능
Round-Robin, SRT
비선점(Non-preemptive) 스케줄링
프로세스가 CPU를 해제할 때까지 다른 프로세스는 대기
FCFS, SJF, HRN
CPU 스케줄링의 기법
- FCFS(First Come First Service)
대기 큐에 도착한 순서에 따라 CPU 할당(비선점)
- SJF(Shorted Job First)
수행 시간이 가장 짧다고 판단된 것을 먼저 수행(비선점)
- Round-Robin
FCFS에 의해 프로스세들이 내보내지며, 각 프로세스는 같은 크기의 CPU를 할당한다.
CPU 시간이 만료될 때 까지 처리를 완료하지 못하면 CPU는 대기중인 다음 프로세스로 넘어가며,
실행 중이던 프로세스는 준비 완료 리스트의 가장 뒤로 보낸다.(선점)
- SRT(Shortest Remaining Time)
수행 시간이 가장 짧다고 판단된 것을 먼저 수행(선점)
- MLQ(Multi Level Queue)
여러 개의 큐를 이용하는 스케줄링 기법
- MLFQ(Multi Level Feedback Queue)
비선점 기법인 우선순위 큐와 선점 기법인 Round Robin을 모두 사용하는 Hybird 스케줄링 기법
높은 우선순위를 할당해 수행 -> 점차 낮은 순위 수행 -> 나중에는 그 작업이 왈료될 때 까지 라운드로빈으로 순환
상호배제(Mutual Exclusion Techniques)
다수의 프로세스가 동일 자원에 접근 시 무결성을 보장하기 위한 기법
임계영역(Critical Section)
공유 자원의 독점을 보장하는 코드 영역으로 지정된 시간이 지난 후 종료
세마포어(Semaphore)
특수한 변수를 사용하여 상호배제 구현
0과 1값만 갖는 이진 세마포어와 정수값도 갖는 계수형 세마포어가 있음
모니터 상호배제
공유 자원을 모니터 내부의 지역 변수로 정의하여 상호배제 구현
교착상태(Dead Lock)
하나 또는 둘 이상의 프로세스가 더 이상 계속할 수 없는 자원의 할당과 해제를 기다리고 있는 상태
자원을 할당받아 점유하고 있으면서, 상호 간에 상대방 프로세스에 할당되어 있는 자원을 요구하는 경우
교착상태 발생 조건
- 상호배제
- 점유와 대기
- 비선점
- 환형대기
교착상태 대응 방법
- 교착상태 예방
- 교착상태 회피 (은행원 알고리즘-안정상태/불안정상태)
- 교착상태 발견/탐지 (교착상태 발견 알고리즘, 자우너 할당 그래프)
- 교착상태 회복 (프로세스 중지, 자원 선점)
디스크 관리(Disk Management)
보조기억장치 중 하나로 레코드판을 여러 개 중첩해 놓은 것과 비슷, 헤드가 섹터를 랜덤하게 참조할 수 있음
디스크 스케줄링의 종류
- FCFS(First Come First Served)
가장 먼저 도착한 것을 우선적, 순서적으로 처리
- SSTF(Shortest-Seek Time First)
헤드에서 탐색 거리가 가장 짧은 트랙에 대한 요청을 먼저 처리
- SCAN(엘리베이터 알고리즘)
한 방향으로 쭉 헤드까지 갔다가 역방향의 요청을 처리 -> 헤드 끝
- C-SCAN(Circular-SCAN)
바깥쪽에서 안쪽으로 진행, 끝에 도달하면 바깥쪽으로 이동하여 다시 요청 처리 (한 방향) -> 헤드 끝
- C-LOOK(Circular-Look)
C-SCAN의 보완, 대기시간을 좀 더 균형있게 함 -> 헤드 끝까지 가지 않음
파일 시스템(File System)
- FAT(File Allocation Table) : FAT16, FAT32
- NTFS(New Technology File System)
- EXT(Extended File System) : EXT, EXT2, EXT3, EXT4
- UFS(Unix File System)
RAID
디스크 고장 시 그대로 복구 할 수 있또록 2개 이상의 디스크에 데이터를 저장하는 가술
디스크를 배열 구조로 중복 구성 -> 데이터 분산 저장에 의한 동시 엑세스 가능, 병렬 데이터 채널에 의한 데이터 전송 시간 단축
Parity -> 잉여비트
RAID0 (Stripe, Concatenate)
최소 2개의 디스크
중복 저장하지는 않기 때문에 디스크 장애 발생시 복구 어려움
RAID1 (Mirroring)
여러 디스크에 데이터를 완전 이중화시켜 저장하는 법
RAID에서 가장 좋은 방식이지만 비용이 많이 발생함
RAID2 (Hamming Code ECC)
ECC(Error Correction Code)기능이 없는 디스크의 오류 복구를 위하여 개발됨
해밍 코드를 이용하여 오류를 복구함
별도의 디스크에 복구를 위한 ECC를 저장함
RAID3 (Parity ECC)
패리티 정보를 별도의 디스크에 저장
RAID4 (Parity ECC, Block 단위 I/O)
데이터는 블록 단위로 데이터 디스크에 분산 저장
RAID3와 동일하나 패리티를 블록 단위로 관리하는 차이가 있음
RAID5 (Parity ECC, Parity 분산 저장)
분산 패리티를 구현하여 안정성을 향상
최소 3개의 디스크 요구(일반적으로 4개)
RAID6 (Parity ECC, Parity 분산 복수 저장)
분산 패리티가 적용된 RAID5에 안정성 향상을 위한 패리티 다중화
장애가 발생한 상황에서 추가적인 디스크 장애가 발생해도 정상 동작
'License' 카테고리의 다른 글
[정보보안기사 필기 요약] 암호학의 개요 (0) | 2025.05.15 |
---|---|
[정보보안기사 필기 요약] 정보보호의 개요 (0) | 2025.05.15 |
[정보보안기사필기] 정보시스템의 범위 및 이해 (0) | 2025.04.29 |
[Toeic Speaking] template 토스 템플릿 / 멜 토스 (0) | 2025.02.09 |
[Toeic Speaking] 토익 스피킹 모의고사 연습 (1) | 2025.02.06 |