본문 바로가기

IT/linux

운영체제

운영체제 : 컴퓨터 시스템의 전반적인 동작을 제어하고 조정하는 시스템 프로그램들의 집합

하드웨어와 응용 프로그램간의 인터페이스 역할을 하면서 CPU, 주기억 장치, 입출력 장치 등의 컴퓨터 자원을 관리한다.

-> 부팅, 작업의 순서 정하기, 입출력 연산 제어, 프로그램 실행 제어, 데이터와 파일 저장 관리

 

유닉스와 차이

1. 파일 구성이나 시스템 기능의 일부는 유닉스 기반

2. 커널 부분은 유닉스와 다르게 작성

3. TCP/IP를 강력하게 지원

4. 네트워킹 강점

5. 운영체제가 인터넷을 통해 무료 제공

다중 사용자 시스템 (Multi-user System) : 여러 사용자가 동시 사용

다중 작업 시스템(Multi-tasking System) : 여러 프로그램을 번갈아 실행

기억 장치를 효율적으로 관리해서 프로그램이 서로 중첩되거나 상호 영향을 미치지 않도록 조정하는 기능이 있음

 

운영체제 주요 기능

자원관리

1.  컴퓨터 시스템의 프로세서

2. 기억 장치

3. 입출력 장치

4. 통신 장치

 

인터페이스

1. 사용자 인터페이스 구현 및 자원의 공유

2. 데이터 공유

3. 다른 사용자와 상호 간섭 배제

4. 자원의 스케줄링

5. 오류의 복구

6. 데이터 조직화

7.입출력 및 자원 활용의 용이성

TIP 운영체제가 소프트웨어에서 점차 펌웨어화하는 추세에 있다

펌웨어 : 하드웨어도 소프트웨어도 아닌, 데이터 보존 부분으로  그 예로는 ROM에 격납된 마이크로프로그램 등이 있다.

 

운영체제 역할

-> 자원 할당자(Resource Allocator) 혹은 제어 프로그램(Control program)

하드웨어 제어, 사용자간 하드웨어 자원 공유, 시스템 자원 스케줄링, 입출력 용이, 응용프로그램 작성과 실행, 오류 발생을 막고 복구, 데이터 조직화, 네트워크 통신, 사용자 인터페이스 제공

 

운영체제 구성하는 요소

제어 프로그램, 처리 프로그램으로 구성

제어 프로그램: 감시(Supervisor) 프로그램, 데이터 관리 프로그램, 작업 관리 프로그램

처리 프로그램 : 언어 번역 프로그램, 서비스 프로그램, 문제 처리프로그램

시스템 성능을 나타내는 4가지 요소

처리 능력 (Throughput): 단위 시간당 처리량

반환 시간(turnaround time) : 작업이 제출되어 결과를 얻을 때까지 총 소요 시간

신뢰도(Reliability) : 시스템이 얼마나 정확하게 작동되는지는 나타냄

사용 가능도 (Availability) : 시스템에서 곧 사용할 수 있는 정도

 

운영체제의 여러가지 유형

다중교환(multi-switching)-다수의 작업이 동시 실행되나 포그라운드 프로그램만 동작하는 형태

대화형 처리(interactive processiong)-사용자가 단말기에서 대화형으로 작업을 처리하는 시분할 처리 기능

일괄 처리(Batch Processing)-여러 개의 작업을 묶어 한꺼번에 처리

실시간 처리 (Real Time Processing)-작업의 처릭 지연없이 즉각 처리

가상 기계(Virtual Machine)-실제로 있는 컴퓨터 시스템을 여러 명의 사용자가 동시에 사용할 수 있도록 하기 위해 시스템을 마치 여러 대의 작은 컴퓨터 시스템 있는 것처럼 분할하여 만든것

분산처리(Distribute Processing)-통신선으로 여러 시스템을 연결하고 작업을 나누어서 처리 

병렬 계산(Parallel Processing)-많은 프로세서들이 동시에 작동

 

시스템 프로그램

어셈블러 : 어셈블리어로 작성된 프로그램을 기계어로 번역하는 언어 번역 프로그램, 결과를 로더가 실행할 수 있도록 목적 프로그램을 만들어준다. 

매크로 프로세서 : 매크로 호출을 매크로 정의로 바꾸어 주는 프로그램

 

로더 : 어떤 프로그램을 실행하기 위해서 그 프로그램의 명령문들과 데이터들을 주기억 장치에 놓아두는 프로그램

절대로드 , 재배치 로더 

로더는 목적 프로그램을  메모리에 적재하고 적재 위치를 변경하기 위해 재배치하고, 연결(Link-edit) 하는 기능을 수행

로더가 명령문과 데이터를 주기억 장지로 옮기는 것을 바인딩(Bingding)이라 한다.

 

서브루틴 : 고유한 기능을 수행하는 프로그램 , 다른 프로그램에 의해서 실행된다.

개방형 서브루틴 : 원시 프로그램에 확장 삽입되는 서브루틴

페쇄형 서브루틴 : 제어가 이동해서 수행하고 결과를 되돌리는 서브루틴

 

컴파일러 : 고급 언어로 된 원시 프로그램을 분석해서 이에 대응되는 목적 프로그램을 생성하는 프로그램

 

기억장치 : 프로그램이나 데이터를 저장하는 부분, 프로그램이 실행되기 위해서는 반드시 주기억 장치에 적재되어야 한다.

 

'IT > linux' 카테고리의 다른 글

리눅스 운영체제 기출문제 용어(2)  (0) 2020.04.30
리눅스 운영체제 기출문제 용어(1)  (0) 2020.04.30
리눅스 하드웨어  (0) 2019.06.03
리눅스 기초  (0) 2019.05.30
리눅스 특징  (0) 2019.05.29