운영체제
개념
하드웨어와 사용자 사이에서 인터페이스를 제공하고, 한정된 시스템 자원을 더욱 효율적으로 관리하여 컴퓨터의 성능을 향상시키는 시스템 소프트웨어
목적
- 처리량 향상
- 응답 시간 단축
- 신뢰성 향상
- 유용성 증대
역할
- 프로세스 관리
- 기억장치 관리
- 입출력장치 관리
- 정보 관리
처리 시스템 분류
- 일괄 처리 시스템 : 자료가 발생할 때마다 즉시 처리하지 않고 일정 기간 또는 일정량이 될 때까지 모아두었다가 한꺼번에 처리 ex) 전기, 수도, 가스 요금 계산
- 다중 프로그래밍 시스템 : 다수의 프로그램을 주기억장치에 적재시킨 후 CPU를 번갈아 가며 사용
- 다중 처리 시스템 : 컴퓨터 시스템의 처리 능력 증대와 신뢰성 향상을 위해 컴퓨터에 두 개 이상의 CPU를 탑재하여 동시에 처리하는 방식
- 시분할 시스템 : 각 사용자에게 일정한 CPU 시간을 할당, 주어진 시간 동안 컴퓨터와 대화 형식으로 프로그램을 실행하는 방식, 각 사용자에게 컴퓨터 시스템을 독점적으로 사용하고 있다는 느낌을 줌, 우선순위가 없다는 단점이 있음
- 실시간 시스템 : 입력된 데이터르르 즉시 처리한 후 바로 결과를 보냄, 결과를 얻기까지 시간제약이 존재, 제약의 엄격함에 따라 경성 실시간 시스템과 연성 실시간 시스템으로 구분
- 분산 처리 시스템 : 네트워크를 통해 연결된 다수의 컴퓨터 시스템에 작업과 자원을 분산시켜 처리
종류
- 유닉스 : 켄 톰슨에 의해 처음 개발
- 리눅스 : 리누스 토발즈에 의해 유닉스 호환 운영체제로 개발, 오픈 소스 정책을 따름
- 윈도우 : 마이크로소프트에서 개발, 다중 작업 기능과 GUI 환경 추가
- 맥OS : 개인용 컴퓨터인 매킨토시용으로 개발된 GUI 운영체제
부팅 과정
- 컴퓨터 시스템에 전원 공급
- 바이오스 프로그램 실행
- 자체 진단 기능 수행(바이오스가 이를 수행하며 오류 발생 시, 오류 메시지 출력 및 시스템 정지)
- 주기억장치에 부트 로더 적재
- 부트 로더가 운영체제 적재
- 운영체제 구동
프로세스
개념
- 실행중인 프로그램, 프로그램은 디스크에 저장된 파일과 같은 수동적인 개체, 프로세스는 프로그램
- 카운터(PC)를 가진 능동적인 개체, 프로그램이 주기억장치에 적재되어 처리를 시작할 때 비로소 프로세스라는 활동적인 개체가 됨
- 프로그램 카운터는 레지스터에 있음
상태
- 초기 상태(new state)
- 준비 상태(ready state)
- 실행 상태(running state)
- 대기 상태(blocked state)
- 종료 상태(exit state)
- 프로세스 생성 : 초기 -> 준비
- 디스패치 : 준비 -> 실행
- 할당 시간 종료 : 실행 -> 준비
- 해제 : 실행 -> 종료
- 입출력 요청/사건 대기 : 실행 -> 대기
- 입출력 완료/사건 발생 : 대기 -> 준비
프로세스 제어 블록(Process Control Block; PCB)
- 프로세스에 대한 정보를 운영체제에 제공하는 자료 구조
- 프로세스가 생성될 때 만들어졌다가 실행을 마치면 삭제됨
포인터 | 프로세스 상태
프로세스 식별자(PID)
프로그램 카운터
레지스터
기억장치 관리 정보
개방된 파일 리스트
기타 정보
병행 프로세스
두 개 이상의 연관된 프로세스가 동시에 실행되는 것
교착 상태(Deadlock)
다중 프로그래밍 시스템에서 하나 이상의 프로세스가 절대 일어나지 않을 특정 사건을 기다리고 있는 상태
CPU 스케줄링
목적
- 스케줄링 공정성
- 처리량 최대화
- 응답 시간 최소화
- 반환 시간 예측 가능
- 자원의 균형적인 사용
- 응답 시간과 자원 활용도의 조화
- 프로세스 실행의 무한 연기 배제
- 우선순위에 따른 실행 보장
- 시스템의 과도한 부하 방지
기법
- FCFS(First Come First Served) : 준비 큐에 도착한 프로세스 순서대로 CPU를 할당하는 방식, 비선점 방식
- 라운드 로빈(Round-Robin) : FCFS와 비슷하지만, 프로세스마다 CPU 사용 시간을 일정하게 할당하여 시간이 지나면 다음 프로세스에게 CPU 사용권을 넘김, 선점 방식
- SJF(Shortest Job First) : 준비 큐에 대기하고 있는 프로세스 중 예상 실행 시간이 가장 짧은 것을 우선 처리, 비선점 방식
- SRT(Shortest Recently Time) : 실행 중인 프로세스의 잔여 실행 시간과 준비 큐에서 대기 중인 프로세스의 잔여 실행 시간을 비교하여 가장 짧은 프로세스에게 CPU를 할당, 선점 방식
- HRN(Highest Response Ratio Next) : 실행 시간이 길더라도 대기를 오래 했다면 우선 처리될 수 있도록 스케줄링할 때 매번 프로세스의 응답률(우선순위)을 계산, 응답률 = (대기 시간 + 실행 시간) / 실행 시간, 비선점 방식
- 우선순위 : 프로세스마다 우선순위를 부여해 최상위 우선순위 프로세스부터 처리하는 방식, 비선점 방식
- MLQ(Multi Level Queue) : 작업 특성에 따라 별도의 준비 큐를 배정하여 각 큐마다 별도의 스케줄링 기법을 적용하는 방식, 선점 방식
- MFQ(Multi Level Feedback Queue) : 입출력 위주 프로세스와 연산 위주 프로세스의 특성에 따라 CPU 사용 시간을 다르게 부여하는 스케줄링 기법, 선점 방식
성능 기준
- CPU 활용률
- 처리율
- 반환 시간
- 대기 시간
- 응답 시간
주기억장치 관리 기법
단일 프로그래밍 기법
- 운영체제와 하나의 사용자 프로그램만 주기억장치에 적재, 주기억장치의 빈 공간이 있어도 다른 사용자 프로그램을 실행할 수 없음
- 자원 낭비가 심함, 주기억장치의 용량보다 작은 프로그램만 실행
고정 분할 다중 프로그래밍 기법
- 주기억장치를 다수의 고정된 크기로 나눠서 실행 중인 여러 프로세스에게 할당, 분할은 하나의 작업이 적재될 수 있는 일정한 크기의 기억 공간
- 작업과 분할의 크기가 일치하지 않아 사용되지 않는 빈 공간이 생기거나, 분할이 너무 작아서 작업을 적재하지 못하는 단편화 현상이 발생
- 내부 단편화 : 분할에 작업을 적재한 후 빈 공간이 남는 현상
- 외부 단편화 : 적재할 작업보다 분할의 크기가 작아서 분할이 빈 공간으로 남는 현상
가변 분할 다중 프로그래밍 기법
- 고정 분할 다중 프로그래밍 기법의 단점을 보완한 기법, 고정된 분할의 경계를 없애고 각 작업에게 필요한 만큼의 기억 공간을 할당
- 작업이 완료되면 사용되지 않는 기억 공간을 회수하여 관리, 새로운 작업의 적재와 완료된 기억 공간 회수가 반복됨에 따라 단편화 현상이 발생
- 통합 : 인접한 빈 공간을 합병하여 하나의 큰 공백을 형성하는 기법
- 집약 : 주기억장치의 한쪽 끝에 하나의 큰 공백을 형성하는 기법
가상기억 장치
현재 실행 중인 프로그램의 일부는 주기억장치에 적재하고, 나머지는 보조기억장치에 유지
파일 시스템 기능
- 사용자에게 편리한 사용자 인터페이스를 제공
- 사용자가 파일을 생성, 수정, 삭제할 수 있는 기능을 제공
- 적절한 제어 방법을 통해 다른 사람의 파일을 공유할 수 있는 기능을 제공
- 불의의 사고에 대비하기 위한 파일 백업 및 복구 기능을 제공
- 정보를 암호화하고 해독할 수 있는 능력을 제공
파일 보호
- 접근 통제 방법
- 접근 제어 행렬
- 파일 명명
- 암호
- 암호 기법
- 파일 백업
- 백업은 불의의 사고로 인한 데이터의 손상과 파괴를 막기 위해 파일을 복사하여 다른 곳에 보존하는 방법
'🔐 [정보보안] 모의해킹 침해대응 전문가 취업캠프 > 컴퓨터 공학' 카테고리의 다른 글
[컴퓨터 공학] 컴퓨터 구조 (0) | 2023.08.10 |
---|---|
[컴퓨터 공학] 정보의 표현 (0) | 2023.08.09 |
[컴퓨터 공학] 정보 보안 (0) | 2023.08.09 |
[Packet Tracer] 네트워크와 인터넷 (0) | 2023.08.08 |
[컴퓨터 공학] 컴퓨터의 개요 (0) | 2023.08.08 |