이 글은 그림책이나 단어책마냥 쉬운 OS 개념 정리입니다.
OS란?
OS란 'Operating System'의 약자로, 컴퓨터를 관리/제어하고, 컴퓨터를 작동시키기 위한 토대를 만드는 소프트웨어를 의미한다. Windows, Mac이 그 종류라고 생각하면 된다. OS의 가장 큰 장점은 컴퓨터 별 기능과 동작의 차이를 OS가 흡수해 줄 수 있다는 것이다.
☆사용자가 컴퓨터 하드웨어 사이에서 중계 역할을 하면서, 프로그램의 실행을 관리하고 제어하는 시스템 소프트웨어
☆컴퓨터가 켜질 때 메모리에 적재되어 모든 프로그램의 실행을 제어하고 사용자의 요청을 처리해주는 소프트웨어
☆컴퓨터의 자원을 독점적으로 관리하는 특별한 소프트웨어
OS는 어디에 있을까?
OS는 보통 하드디스크 안에 저장되어 있다. 외장형 하드디스크나 USB 메모리에 설치하여 사용되는 OS도 있지만, 일반적으로 컴퓨터에 내장된 하드디스크에 설치되어 사용한다.
엥? 분명 교수님은 메모리의 끝에 있다고 하셨다..
"메모리의 끝에 있다"는 표현은 컴퓨터 부팅된 이후의 상황이다. OS는 원래 하드디스크에 있다가 컴퓨터가 부팅될 때 메모리에 로드되어 실행된다. 컴퓨터가 실행 중일 때, 일부 운영체제 구성 요소는 메모리에 상주하며 빠른 액세스를 위해 메모리의 끝 부분을 사용한다고 한다.
Kernel?
수업 시간에 교수님께서 커널이라는 단어에 대한 언급이 정말 많으셨다. 이 kernel 영어로 '핵심', '알맹이'라는 뜻이다. 이 kernel을 감싸는 껍질이 바로 shell, 껍질이다. shell은 아래에서 더 알아보자.
Kernel이 사용자와 프로그램 사이에서 트랩이나 인터럽트, 시스템 호출을 통해서만 직접적인 하드웨어/시스템 요청이 가능한 친구다. 실질적인 역할을 하는 애라고 생각하면 된다. 프로그램은 커널에게 처리를 의뢰하고, 실제 처리는 커널이 수행한다. 예를 들면, "CPU, 너 이 프로그램이랑 공유해.", "메모리, 너 할당해야 되니까 비워둬!" 등의 처리를 한다고 생각하면 된다. Kernel은 항상 필요한 운영체제의 핵심 부분만을 메인 메모리에 적재하여 OS를 사용하게끔 한다. 즉 메모리에 상주하는 OS의 핵심부분이라고 할 수 있다 !
User Space
kernel와 가장 반대되는 OS 영역은 사용자 영역(User Space)이다. 사용자 영역에서는 우리가 잘 아는 응용 프로그램들이 실행되며, 이는 모두 API를 기반으로 실행된다. 이 API를 통해서 사용자 프로그램이 커널과 상호작용할 수 있다. 아래 그림을 참고하며 보자!
Shell
껍질을 의미하는 shell은 결국 의미와 동일하게 사용자의 Input을 해석하고 Output을 보여주는 GUI/CUI를 의미한다. shell은 System call을 통해 Kernel을 호출할 수 있다.
나중에 더 세세하게 배우겠지만, 배치처리, History, aliasing, job control, redirect, pipe 등의 일을 수행한다.
OS 기동방법?
컴퓨터의 전원을 켠다.
BIOS가 기동된다.(BIOS 는 Basic Input/Output System을 의미한다.)
부팅 로더가 읽히고 기동된다.
OS가 기동된다.
부팅로더는 하드디스크 상의 OS를 기동시키기 위한 프로그램으로, 하드디스크 속 MBR이라는 특별한 영역으로부터 실행된다.
turn-around time
아래 그림에서 쉽게 파악할 수 있듯이 사용자가 입력을 주고 / CPU에서 처리하고 / output이 나오게 되는 일련의 과정을 일컫는다.
교수님께서 대충 그리듯 설명하시는 I 모양 process가 있는데, 이걸 의미하는 것 같다...
OS의 다양한 능력들
지금은 간단하게 보고 이후 더 자세하게 알아보자!
Process
Interrupt
Multi-Tasking
Scheduling
Dead-Lock
시분할 처리 (TSS)
CS공부에 조금 신경을 쓰자!
혹시 모른다. 이 공부들이 나중에 리바운드를 처리하는 기반이 될지도..
'CS > OS' 카테고리의 다른 글
[OS] 프로세스 동기화 (0) | 2023.04.13 |
---|---|
[OS] 다중 스레드 프로그래밍 (0) | 2023.04.12 |
[OS] 프로세스 간 통신 IPC (0) | 2023.04.11 |
[OS] UNIX로 알아보는 PROCESS (3) | 2023.04.11 |
[OS] 운영체제 개념 및 프로세스 (6) | 2023.04.11 |