티스토리 뷰

 

안녕하세요 잡다입니다.

저번 포스팅에서는 C언어와 자료의 표현형에 대해 자세히 알아보았습니다.

오늘은 운영체제, 프로세스 스케줄링, 가상기억장치 구현 기법에 대해 배우고

 3과목 프로그래밍 일반 과목을 끝낼 것입니다.

벌써 3과목도 끝이 났고, 4과목 정보통신 개론만을 앞두고 있습니다. 

이번파트는 계산하는 거 없습니다.

그러므로 맘편히 공부를 시작하셔도 될 것 같습니다.

그럼 시작하겠습니다.

 

3과목 프로그래밍 일반 


17. 운영체제


17-1)운영체제(OS)란?

사용자와 컴퓨터 하드웨어 간의 인터페이스로 사용되는 시스템 소프트웨어이며, 프로세스의 생성 및 실행에 필요한 시스템을 해당 프로세스에 할당한다.


->말이 많이 어렵죠? 그냥 사용자랑 컴퓨터랑 상호작용하는데 사용되는 시스템 소프트웨어 정도로 알고 계시면 됩니다.


17-2)목적

처리 능력(Throughput) 향상

응답 시간(Turnaround Time) 감소

신뢰성(Reliability) 향상

사용 가능도(Availability) 향상


->운영체제의 목적은 다른 말로 성능 평가 항목이라고도 불립니다. 그래서 성능 평가 항목으로 옳지 않은 것은?이라는 문제가 나올 수 있습니다. 다른 말이 나왔다고 기억못하시면 안됩니다. 또한, 영어로 보기가 나온 적이 없었던 것 같은데, 혹시 모르니 적어놓았습니다. 


17-3)기능

사용자와 컴퓨터 하드웨어 간의 인터페이스를 제공

프로세서, 기억장치, 입출력장치, 파일 및 정보 등 의 자원을 관리

입출력 보조 기능

오류를 검사, 복구하여 시스템 보호


->운영체제라고 하면 컴퓨터를 운영하는데 필요한 기능을 한다고 생각하고 이해하면 빠릅니다.

 

17-4)운영체제의 운영 방식

일괄 처리 시스템(Batch Processing System) : 유사한 작업을 모아서 한번에 처리

다중 프로그래밍 시스템(Multi-Programming System) : CPU의 처리 효율 극대화를 위해 몇몇 프로그램을 주기억 장소에 적재 후 처리

시분할 시스템(Time Sharing System) : 하나의 컴퓨터를 여러 개의 단말기가 공동으로 사용하는 시스템

다중처리시스템(Multi-Processing System) : 러 개의 CPU와 한 개의 주기억장치로 여러 프로그램 동시에 처리

실시간 처리 시스템(Real Time Processing System) : 처리할 작업이 발생한 즉시 처리

분산 처리 시스템(Distributed Processing System) : 여러 대의 컴퓨터로 작업을 나누어 처리 후 결과를 통신망으로 상호 교환


->정말 중요합니다. 키워드 중심으로 외우면 됩니다. 나오는 빈도가 상당히 높기 때문에 정의를 알고 있어야합니다. 실시간과 시분할, 다중처리가 자주 나옵니다.


17-5)선점 스케줄링(Preemptive)

SRT(Shortest Remaining Time) : 실행 중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간 중 실행 시간이 더 짧은 프로세스에게 CPU를 할당

RR(Round Robin) : 주어진 시간 할당량 안에 작업을 안마치면 준비상태 큐의 가장 뒤로 배치

다단계 큐(Multi-Level Queue) : 프로세스들을 선순위에 따라 단계별 준비 상태 큐를 배치

다단계 피드백 큐(Multi-Level Feedback Queue) : 준비상태 큐마다 시간 할당량 안에 끝내지 못한 프로세스는 다음 단계의 준비상태 큐로 이동

 

17-6)비선점 스케줄링(Non-Preemptive)

FIFO(First In First Out) : 도착한 순서대로 CPU를 할당

SJF(Shortest Job First) : 대기 중인 프로세스 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당

HRN(Highest Response-ratio Next) : 우선순위에 따라 CPU를 할당(서비스 받을 시간과 서비스를 기다린 시간)

우선순위(Priority) : 대기하는 프로세스에게 부여된 우선순위가 가장 높은 프로세스에게 먼저 CPU를 할당


->선점과 비선점을 자세히 공부하려면 양이 상당합니다. 그렇기 때문에, 선점에는 무엇이 있고 비선점에는 무엇이 있으며, 각 특징이 무엇인지 구분지어 공부해야합니다. 보통 '정의+선점/비선점' 맞는 것은? 혹은 '선점/비선점'아닌 것은?이라는 식으로 자주 출제되는 문제입니다.

 

18. 프로세스 스케줄링(Process Scheduling)

 

18-1)배치 전략

First-Fit : 적재 가능한 공간 중에서 첫 번째 공간에 배치

Best-Fit : 단편화 공간이 가장 작게 발생하는 공간에 배치

Worst-Fit : 단편화 공간이 가장 크게 발생하는 공간에 배치


->자료를 주고 어떤 a가 있으면 이 a가 A공간에 배치되었다. 그렇다면 이 배치 전략은 무엇인가?라는 문제가 나옵니다. 그럴 때 공간 중에 A가 첫번째인지, 가장 작은 것인지, 가장 큰 것인지 확인해보고 맞는 전략을 찍으면 됩니다. 보통 Worst-fit이 답으로 나옵니다. 문제보고 진짜 이해가 안되시면 Worst-fit을 찍으세요.


18-2)교체 전략

OPT(OPTimal replacement) : 이후에 가장 오랫동안 사용되지 않을 페이지를 먼저 교체

FIFO(First In First Out) : 가장 먼저 적재된 페이를 먼저 교체

LRU(Least Recently Used) : 각 페이지마다 계수기나 스택을 두어 현 시점에서 가장 오랫동안 사용하지 않은 페이지를 교체

LFU(Least Frequently Used) : 참조된 횟수가 가장 적은 페이지를 먼저 교체

NUR(Not Used Recently) : 페이지당 두 개의 하드웨어 비트를 두어서 가장 최근에 사용하지 않은 페이지를 교체

SCR(Second Chance Replacement) : FIFO의 단점을 보완하는 기법, 가장 오랫동안 주기억장치에 상주했던 페이지 중에서 자주 참조되는 페이지의 교체를 예방


-> 정의가 문제로 나올 수도 응용 자료가 나올 수 도 있습니다. 정의문제가 더 잘 나오기 때문에, 정의를 잘 기억해둡시다.


19. 가상기억장치 구현 기법

 

19-1)가상기억장치(Virtual Memory)

주 기억장치의 부족한 용량을 위해 보조 기억장치를 주기억장치처럼 사용 (페이징, 세그먼테이션)

->답이 Virtual Memory으로 나오는 정의 문제가 한번씩 출제 됩니다.


19-2)페이징(Paging) 기법

가상기억장치에 보관된 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 적재

페이지의 위치 정보를 가진 페이지 맵 테이블이 필요


19-3)세그먼테이션(Segmentation) 기법

가상기억장치에 보관된 프로그램을 다양한 크기로 나눈 후 주기억장치에 적재

- 세그먼트(Segment) 

큰 프로그램을 작은 프로그램으로 분할해 하나의 논리적 단위로 묶어 주기억장치가 읽을 수 있는 최소 단위

->답이 세그먼테이션으로 나오는 정의 문제가 한번씩 출제 됩니다.


19-4)구역성(Locality)

프로세스가 실행 중 일부 페이지만 집중적으로 참조되는 경향

시간 구역성(Temporal Locality) : 순환(Looping), 스택(Stack), 부프로그램(Subprogram), 집계 (Totaling)

공간 구역성(Spatial Locality) : 배열 순례(Array Traversal), 프로그램의 순차적 수행

->성격이 다른 구역성을 물어 볼 수 있습니다.


19-5)스래싱(Thrashing)

프로세스가 기억 장치 접근에서 지나치게 페이지 부재가 발생하여 수행 시간보다 이동 시간이 더 커지는 현상이다.

->답이 Thrashing으로 나오는 정의 문제가 한번씩 출제 됩니다.

 

---------------------------------------------------------

3과목 프로그래밍 일반 어떠셨나요?

아무래도 생소한 단어와 응용이 많아 어려움을 겪었으리라 짐작됩니다.

저는 3과목을 풀면서 응용문제를 어떻게 풀지...?라는 걱정을 분명히 했지만,

응용은 깔끔하게 풀 수 있는 것만 풀고! 나머지 암기로 풀 수 있는 문제를 다 맞추자는 각오를 했습니다.

물론 응용도 다 풀 수 있는 분들도 계시겠지만, 저와 같은 고민에 빠져있는 분들도 계시다면 저는 이렇게 말씀드리고 싶습니다! 아는 것을 확실하게 맞추자라고ㅎㅎ

너무 걱정하지마세요. 응용 문제는 4과목 합쳐도 10문제 안나옵니다.

3과목 포스팅된 내용 중에 부족하다고 생각되시는 분들 계신다면 댓글로 남겨주시면 참고해서 포스팅하겠습니다.

공감과 구독, 댓글은 큰 힘이 됩니다.ㅎㅎ

 

반응형
댓글