Notice
Recent Posts
Recent Comments
05-17 09:12
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Byeol Lo

Linux master 1급 - 운영체제 (Operating System) 본문

OS/Linux

Linux master 1급 - 운영체제 (Operating System)

알 수 없는 사용자 2023. 1. 23. 21:02
더보기

 리눅스 마스터 1급의 이론서를 공부하면서 정리한 내용들을 적으려고 한다. 방학 동안 필기만 합격을 해놓고, 1학기의 강의를 들으면서 실기를 이번년도 상반기에 딸 것이다. 정리한 내용이 다른 분들에게도 도움이 되었으면 한다. 또한, 2급을 따지 않은 입장에서 쓴 글들은 정말 논리적으로 비약적이고, 높은 확률로 정확하지 않을 수 있으므로, 이를 보는 다른 사람들은 해당 글들을 비판하면서 볼 수 있었으면 좋겠습니다.

 

운영체제 정의

 사용자와 하드웨어 간의 상호 소통을 위한 시스템 소프트웨어( 어플리케이션을 실행하기 위해 하드웨어를 조작할 수 있도록 해주는 소프트웨어 ex. 부트로더, 운영체제, 장치 드라이버, 셸, 로더 등등) 이다. 정의에도 보다시피 목적은 사용자가 하드웨어를 잘 조작할 수 있도록 함에 있다. 이때, 이론서에서 정의하는 목적은 처리능력(Throughput), 반환 시간(Turnaround Time), 신뢰도(Reliability), 사용 가능도(Availability)의 향상을 목적으로 한다. 각각의 특성은 아래의 의미와 같다

용어 정의
처리능력 Throughput 일정 시간 당 처리하는 일의 양
반환시간 Turnaround Time 작업 명령 후 부터 결과물이 나올 때까지의 시간
신뢰도 Reliability 문제를 정확히 푸는 정도
사용 가능도 Availability 이용할 수 있는 시스템의 자원의 범위

 운영체제의 역할 또한 정의를 해놨다. 위에서 봤다시피 운영체제의 정의만 보고 유추할 수 있다. 컴퓨터의 하드웨어를 조작해야하고 → 조작하기 위해 하드웨어 제어, 입력, 출력을 할 수 있도록 하며 → 각 명령을 처리하기 위해 자원 스케줄링을 지원해야 함 → 또한 작성과 실행이 편리하도록 시스템 호출(system call)을 제공한다. 이를 기반으로 운영체제는 추가적으로 더 나은 서비스( 사용자 인터페이스 - UI, 다수의 이용자가 쓸 수 있는 공유 기능, 오류 복구 기능, 데이터베이스 기능, 네트워크 기능 등등)을 제공한다.

OS의 역할 설명
하드웨어 조작 기본적으로 운영체제는 하드웨어를 조작할 수 있어야 한다
자원 스케줄링 조작하기 위한 명령을 내리는 효율적인 사용을 위한 도구를 제공한다.
시스템 호출 system call 응용프로그램 작성, 실행이 편리하도록 한다.
사용자 인터페이스 User Interface 오류가 발생하면 중단하지 않고 실행할 수 있도록 한다
공유 기능 Sharing 다수의 컴퓨터 사용자가 자원을 공유할 수 있도록 한다.
오류 복구 기능 오류가 발생하면 시스템을 중단하지 않고 실행할 수 있도록 한다.
데이터베이스 Database 데이터, 파일 등을 묶어 저장, 관리할 수 있도록 한다.
네트워크 Network 원격 컴퓨터와 연결할 수 있도록 한다.

 결국 거의 모든 것이 완벽하게 돌아갈 수 있도록 기능들을 제공한다고 보면 된다. ( + 추가적으로 시험에서는 다음과 같은 항목도 나올 수 있다. ⇒ 운영체제는 자원의 유휴시간을 최소화 하기 위해 물리적 컴퓨터에 가상의 컴퓨터를 여러 대 실행할 수 있는 가상화 기능을 제공한다.)

 

운영체제의 구조

출처 : 위키백과

 사용자 - 응용프로그램, 셸, GUI, 배치 를 통한 시스템 호출 - 파일시스템, 프로세스, 메모리 관리, 리소스 관리, 보안, 에러 처리, 하드웨어 제어, 사용자 관리 등등 하드웨어 추상 계층( HAL Hardware Abstraction Layer = 커널)을 이용 - 하드웨어(CPU, RAM, HDD or SSD, 입출력 device 등 접근)

시스템 호출 : system call 이라고도 하며, 이를 통해 커널의 서비스를 이용할 수 있다.
커널 : 운영체제의 핵심이 되는 프로그램 ( 즉, 모든 자원들을 총괄하는 놈임 )

 사용자가 응용프로그램이나 셸, GUI, 배치처리 등을 통해 시스템을 호출하며 작업에 따라 하드웨어에 직접 접근하지 않는 하드웨어 추상계층(HAL : Hardware Access Layer)을 통한 접근으로 각각의 하드웨어에 대한 접근이 가능케 된다. 이것이 운영체제 작동의 전반적인 과정이다.

여담으로 하드웨어 추상 계층은 소프트웨어를 하드웨어 추상 계층에 의존하여 작성만 한다면 소프트웨어 이식성(소프트웨어를 다른른 기기의 운영체제에 주입하는 것)을 향상 시킬 수 있다. 또한, 새로운 하드웨어가 추가된다 하더라도 추상 계층만 지원한다면 소프트웨어는 수정 없이 동작할 수 있다.
Comments