이론공부/관련서적

운영체제 (Operating System)

chobyeonggyu03 2024. 9. 6. 15:47
반응형

이번 글에서는 이번학기에 듣게 되는 '운영체제 '과목에 대해 기본 CS지식인만큼 머리에 진하게 새겨두고 싶어 관련 건대 도서관에서 관련 서적을 찾다 해당 책을 찾게 되어 해당 책을 읽으며 정리해두면 좋을 것 같은 내용들을 정리 해보고자 한다.
 
 
 
 

● 운영체제의 정의

 
- 운영체제(OS : Operating System)는 사용자가 필요로 하는 프로그램(Application)을 실행시켜주기 위해, 컴퓨터 하드웨어를 관리해주는 시스템 소프트웨어(SS: System Software)들 중 하나이다.
 
- 시스템 소프트웨어는 컴퓨터를 작동시키고 효율적으로 컴퓨터를 사용할 수 있게 도와주는 기능을 하는데, 운영체제도 이들 중 하나인 것이다. (저자는 소프트웨어와 운영체제를 구별하지않고 동일하게 보는사람도 많다고 한다.)
 
- 컴퓨터 자원들을 효율적으로 관리하여 사용자에게 최대 편의성을 제공해주는 프로그램
 
 
 
 
 
 
 

● 운영체제의 목적

 
-  사용자가 최대한 쉽고 빠르게  컴퓨터를 사용할 수 있도록 지원
 
- 사용자가 컴퓨터를 최대한 편리하게 컴퓨터를 사용할 수 있도록 제공 
 
컴퓨터 성능을 최대화하여 효울을 높일 수 있도록 제공
 
 
 
 

● 운영체제의 성능 평가요소

 
-처리능력 향상: 일정시간동안 시스템에서 처리가능한 일의 양 ( 생산성을 의미)
 
- 반환시간 단축: 작업을 의뢰한 시간부터 걸리는 소요시간 
 
- 사용 가능도 증대: 자원이 필요할 때 얼마나 빠르게 해당 자원을 사용할 수 있는지의 정도
 
- 신뢰도 향상: 얼마나 정확히 문제를 해결하는지의 정도
 
 
 
 

● 운영체제의 목적

- 프로세서, 주기억장치, 보조기억장치, 입력장치, 출력장치 등의 하드웨어 자원 관리
 
- 파일, 정보등의 자원 관리
 
- 초기환경 설정가능
 
- 자원 및 CPU 스케줄링
 
- 하드웨어 장치와 프로그램 수행을 제어
 
- 하드웨어와의 네트워크 관리 및 제어
 
- 사용자에게 컴퓨터 사용을 위한 편리한 인터페이스 제공 
 
 
 
 
 

● 운영체제의 역할

 
- 일괄 처리 시스템 (Bath Processing System): 일괄처리 시스템은 처리해야하는 정보나 자료들이 발생할 때마다 곧장 처리하는 것이 아니라 입력되는 자료들을 일정 기간이나 일정량으로 모아 한꺼번에 처리하는 방식이다. 이 방법은 기다렸다가 한꺼번에 처리하는 만큼 반환시간은 늘어난다는 단점이 있지만 CPU의 유휴시간이 개선되기에 시스템을 효율적으로 사용할 수 있게 해준다.
 
(여기서 CPU의 유후 시간이란? cpu와 입출력장치의 처리시간이 다라라 cpu가 입출력 장치의 처리시간동안 작동하지 못하고 기다리게 되는 시간이다, 즉 다시 말해 우리 부서는 일처리가 빠른데 다른 부서에서 일처리가 느려 바로바로 일처리를 하면  일을 안하고 놀게되는 시간들이 많아 업무에 비효율성이 생기게 되는 것이며 특정시간동안 일거리를 쌓아두고 쉴떄는 확실하게 쉬고 일할 때는 확실하게 하여 더 짧은 시간 일을 하고 더 많은 일들을 처리하지만 휴식시간이 길기에 전체적인 업무환경은 좋아지는 것과 비교하면 좋을 것 같다,)
 
 
- 온라인 시스템(대화형 시스템, On-Line System): 온라인 시스템은 cpu와 주변장치를 온라인으로 연결시켜 동작하게 만들고 사용자와 온라인 통신을 연결시켜 운영체제나 프로그램에 직접 명령을 주고 응답도 즉시 받을 수 있도록 해주는 시스템이다. 이는 문서편집이나 온라인 게임등의 다양한 응용프로그램을 만드는게 핵심적으로 사용된다.
 
 
- 다중 프로그래밍 시스템(Multi Programming System): 다중 프로그래밍 시스템은 하나의 CPU와 하나의 주기억장치를 사용하여 여러개의 프로그램들을 동시에 처리하는 방식이다. 하나의 주기억장치에 여러개의 프로그램들을 적재시켜두고, 하나의 CPU를 공유하는 방식이므로 여러개의 프로그램들을 동시에 처리하는것과 비슷하게 CPU의 사용률과 처리량을 증가시키는 효과가 있다.
 
 
- 시 분할 시스템(Time Sharing System): 시분할 시스템은 다수의 프로그램들이 동시에 처리되는 특징은 다중 프로그래밍 시스템과 유사한데, 여기에 다수의 사용자들에게 균등하게 시간을 분할하여 일정시간씩 번갈아가며 처리해주는 방식이다. 한 사람의 일처리가 끝난다음 다음 사람을 부르게 하는 것이 아니기에 대기중인 사용자가 기다리게 되는 시간이 줄어드는 효과가 있고, 전체 작업시간은 줄어들지만 개인 사용자들 입장에선 일처리가 지연되는 듯하게 느껴질 수 있다.
 
 

- 다중 처리 시스템(Multi Processing System):
다중 처리 시스템은 여러개의 CPU를 하나의 주기억장치에 연결하여 여러 개의 작업들을 동시에 처리하는 방식이다. 여러 명이 동시에 일을 처리하는 것과 같으므로 전체적인 일처리 속도가 빠르며, 하나의 CPU가 고장나도 일처리에 큰 지장이 없어 신뢰성과 안전성이 높다. 하지만 같은 자원을 요구하는 CPU들간의 자원 공유 충돌문제를 해결해야하며 병행시간과 최적연결 기법등을 고려 해야한다.
 
 
- 실시간 처리 시스템(Real-Time Processing System): 데이터 처리 요구가 발생하는 즉시 처리하는 방식으로, 처리 시간이 단축되고 처리 비용이 절감된다. 
 
 
- 다중 모드 처리(Multi Mode Processing): 다중 모드 처리는 하나의 시스템에서 일괄 처리 시스쳄, 시분할 시스템, 다중 처리 시스템등의 여러 시스템들을 혼합하여 처리하는 방법으로 Multi User, MultiAccessing, Multi Tasking등이 있다
 
 
-  분산 처리 시스템(Distributed Proceesing System): 분산 처리 시스템은 처리할 작업을 하나의 대형 컴퓨처에서 처리하는 것이 아니라 멀리 떨어져 있는 여러대의 컴퓨터들로 처리하는 것이다.이때 컴퓨터끼리의 운영체제가 다르더라고 정상적으로 처리하는 것이 가능하다. 
 
- 클라우딩 컴퓨팅( Cloud Computing): 클라우딩 컴퓨팅은 정보를 인터넷 서버에 데이터들을 영구적으로 저장하고 클라이언트들에게는 임시로 저장시켜, 온라인 서버를 통해  IT와 관련된 서비스들을 한꺼번에 사용할 수 있게 해주는 컴퓨팅 환경이며, '가상화'와 '분산화'가 핵심적인 기술이다.
 
 
 

● 운영체제 유형의 발달 과정

 

운영체제 유형의 발달 과정

 
 
 

● 운영체제의 구조

-운영 체제는 매우 복잡한 구조로 이루어져 있는데, 이를 크게 2가지로 나눠보자면 '커널(Kernal)'와 '사용자 인터페이스(User Interface)'또는 셸(Shell, UNIX에서의 UI)로 나눌 수 있으며, Shell은 사용자의 명령을 해석하여 Kernal에 전달하고, 그 결과를 사용자에게 제시해주는 역할을 한다. Kernal은 운영체제의 가장 바깥부분에 위치하여 사용자 명령어에 대한 처리를 담당한다. 이 Kernal에는 어떤 프로그램들이 어떤 순서로 커널의 처리시간을 공유할 것인지를 결정하는 스케쥴러, 스케줄이 끝나면 각 프로세스들에게 사용권을 부여하는 슈퍼바이져등이 포함된다,
 
 
 

 운영체제의 계층 구조

 
 
- 하드웨어 (Hardware): 하드웨어 계층은 중앙 처리 장치(CPU), 메모리, 입출력 장치 등 컴퓨터의 물리적인 구성 요소들을 포함하며, 운영체제의 가장 기본적인 작업 실행을 위한 하드웨어적 지원을 제공해준다..
 
커널 (Kernel): 커널 계층은 운영체제의 핵심 부분으로, 다양한 하드웨어 자원을 관리하고 시스템 호출을 통해 소프트웨어와 하드웨어 사이의 통신을 담당하고, 프로세스 관리, 메모리 관리, 파일 시스템 조작, 입출력 관리 등의 기능들을 제공해준다.
 
- 시스템 라이브러리 (System Libraries): 시스템 라이브러리 계층은 시스템 호출 인터페이스에 대한 wrapper함수를 제공해주는 계층으로, 개발자들이 운영체제의 기능을 좀 더 쉽게 사용할 수 있게해주는 라이브러리들을 제공해준다.
 
- 시스템 유틸리티 (System Utilities): 시스템 유틸리티 계층은 운영체제의 유지 관리를 위해 설계된 계층으로, 시스템의 성능을 향상, 구성 변경, 문제 진단 등의 기능들을 제공해준다.
 
- 응용 프로그램 (Application Programs): 응용 프로그램 계층은 사용자가 직접 사용하는 다양한 소프트웨어 프로그램들로,  시스템 라이브러리와 시스템 유틸리티를 사용하여 커널과 상호 작용하며, 다양한 작업을 처리해준다.
 
- 사용자 (User): 사용자 계층은 최상위 계층으로, 사용자가 응용 프로그램을 통해 컴퓨터와 상호 작용하며 다양한 작업을 수행할 수 있도록 해준다.
 
 
 
 
 
 

 
 

반응형