MAKE IT SIMPLE
운영체제(OS)란 - (1) 본문
1. Computer 란 무엇이고 어떻게 구성되는지?
※ 컴퓨터의 구성
하드웨어
|
Hardware
|
컴퓨터의 모든 물리적 부품
|
소프트웨어
|
Firmware
|
하드웨어를 제어하는 가장 기본적인 프로그램
|
Operation System
|
컴퓨터 하드웨어 자원과 소프트웨어 자원을 연결 및 운영 관리하는 프로그램
|
|
Middleware
|
두 매개체를 연결하여 데이터를 주고받을 수 있도록 매개 역할(레이어)을 하는 소프트웨어
|
|
Application
|
플랫폼 위에서 구동되는 프로그램. 우리가 아는 그 응용 소프트웨어(SW)
|
2. 운영체제에 대해서 좀 더 자세하게 알아보쟈
▷ 운영체제의 존재 이유(목적) - 컴퓨터를 최대한 효율적으로 사용하려고!
-
효율성 - 하드웨어 자원 관리가 운영체제의 가장 주된 목적임.
-
안전성 - 비정상적인 작업으로부터 컴퓨터 자원을 보호.
-
확장성 - 하드웨어 인터페이스를 제공해 다양한 시스템 자원을 추가하거나 제거하기 편리해짐.
-
편리성 - 사용자 인터페이스(=GUI)를 제공해 대부분의 작업을 마우스로 수행할수 있음.
-
형평성 - 모든 작업이 운영체제가 정한 순서에 맞게 평등하게 진행됨.
▷ 부팅과 운영체제의 동작 원리
-
컴퓨터의 전원이 켜지면 프로세서(CPU) 에서 ROM 에 있는 내용을 읽는다.
→ ROM 안에는 POST(Power-On Self-Test), 부트 로더(Boot Loader)가 저장되어 있다.
-
POST 는 전원이 켜지면 가장 처음에 실행되는 프로그램으로 현재 컴퓨터의 상태를 검사한다.
-
POST 작업이 끝나면 부트 로더가 실행된다.
-
부트 로더는 하드디스트에 저장되어 있는 운영체제를 찾아서 메인 메모리(RAM)에 가지고 온다.
▷ 운영체제의 운용 기법
1세대
|
일괄 처리 시스템
(Batch Processing)
|
초기의 컴퓨터 시스템에서 사용됨. 일정량 / 일정 기간동안 데이터를 모아 한꺼번에 처리.
|
2세대
|
다중 프로그래밍 시스템
(Multi-programming System)
|
하나의 CPU와 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식.
|
시분할 시스템 - 범용
(Time Sharing System)
|
Multi User 가 사용하는 시스템에서 사용되는 프로그램에 대한 작업을 하나의 CPU에 번갈아 할당해가며 처리함. 라운드 로빈(Round Robin) 방식이라고도 함
|
|
다중 처리 시스템
(Multi-processing System)
|
여러개의 CPU와 하나의 주기억장치로 다수의 프로그램을 동시에 처리하는 방식
|
|
실시간 처리 시스템
(Real Time Processing)
|
데이터 처리 요구 즉시 처리하여 결과를 산출하는 방식
|
|
3세대
|
다중 모드 처리
(Multi-mode Processing)
|
일괄 처리 시스템, 시분할 시스템, 다중 처리 시스템, 실시간 처리 시스템을 한 시스템에서 모두 제공
|
4세대
|
분산 처리 시스템
(Distributed System)
|
여러개의 컴퓨터(프로세서) 를 통신 회선으로 연결하여 하나의 작업을 처리하는 방식
|
5세대
|
임베디드 시스템
(Embedded System)
|
특정한 기능을 수행하기 위해 하드웨어와 소프트웨어가 내장된 전자 제어 시스템
|
- Multi-user, Multi-tasking은 현대 OS의 필수 요소
▶ 잠깐, 근데 Multi-Tasking이랑 Multi-Threading 은 뭐가 달라요?
- Multi-Threading 는 서로간의 자원 공유가 가능하며, 프로그래밍을 통해 구현됨.
=> 멀티 쓰레딩을 통해 하나의 프로세스가 완성된다고 보면 됨.
- Multi-Tasking 은 운영체제에서 지원해주는 것으로 서로간의 자원이 공유되지 못함. 자원 전달이 필요할 시 별도의 IPC(Inter-Process Communication) 을 구현해야 함.
=> task는 process 에서 좀 더 확장된 개념으로 멀티쓰레딩에 비해 운영체제에 부담을 줄 수 있음.
▷ 운영 체제의 구성

커널(Kernel)
|
메모리에 상주하는 운영체제의 부분. 노른자임.
커널이 아닌 프로그램들은 Disk Resident 라고 표현한다. 필요할때만 메모리에 로딩해서 사용하면 됨.
|
명령어 해석기(Command interpreter, shell)
|
커널(운영체제)에 요청하는 명령어를 해석해주고 그 결과를 출력해줌.
|
3. 그래서 Linux 는 무엇이고 왜 Linux를 공부해야 하는 거임?
-
리눅스는 IT 산업 전반에서 쓰이는 가장 핫한 운영체제. IT 산업의 제반 기술의 세부 구현 방식을 알 수 있음.
-
네트워크, 브라우저, WAS 웹 어플리케이션, 보안 유틸리티 등 수많은 프로그램이 리눅스 기반 환경에서 동작함.
-
오픈소스 기반 운영체제. 세부 동작 원리 파악 가능.
-
잘 알수록 연봉 업업됨 개쥬아><
※ 운영체제의 간단 역사
: Unix → Linux를 포함한 자식들 → Embedded Linux 와 같은 손자손녀들...
▷ 유닉스 - 운영체제의 시조새
- OS 역사상 가장 중요한 애.
- 윈도우를 제외한 리눅스, 안드로이드, macOS, iOS등의 많은 OS가 유닉스를 뿌리로 두고 있음. (사실상 모두 유닉스의 변종 혹은 자손)
- C 언어 자체가 Unix 시스템 프로그래밍을 하기 위해 만들어졌음.
▷ 리눅스 - OS 역사상 최대의 오픈 소스 프로젝트
-
커널 - 창시자 : 리누스 토발도 ( 로고 - 펭귄한테 물린 적 있어서 펭귄 )
+
-
응용 프로그램 - 창시자 : 리처드 스톨만( FSF 자율 소프트웨어 재단 ) → GNU (GNU is Not Unix)/ GPL
=> Linux 배포판의 탄생! ex) 레드햇, 데비안, 우분투, 슬랙웨어
무료 - 라이센스가 무료. 내부는 안보여줌><
오픈 소스 - 무료 + 공개
▶ UNIX vs LINUX
- Unix 성당 / 폐쇄 (HP / Solaris)
- Linux 시장 / 공개 (범용)
*시스템 구조가 거의 비슷하다
-> 리눅스를 통해서 유닉스를 배운다고 생각하자 ( 유닉스는 유료이고, 은행권/ 공기업에서 많이 사용한다 )
=> 리눅스를 배우는 또 다른 이유 - 유닉스를 배우는 통로
▶ Linux vs Windows
1. 자원의 소모 (승자 - 리눅스)
- linux는 multi-user 시스템이 base 였다.
=> 한정된 자원을 모두가 효율적으로 이용해야 하기 때문에 *CLI(Command Line Interface) 을 채택한다.
- 반면 window 운영체제의 출발점은 single user 시스템이였고, GUI(Graphic User Interface)를 채택하게 된다.
=> 사용자에게 편리한 인터페이스를 제공하는 대신 동일 작업 대비 훨씬 많은 자원이 소요되게 된다.

2. 보안 이슈 (승자 - 리눅스)
- 윈도우와 다르게 리눅스에서는 보안이 매우 중요하다. 특히 데이터를 I/O 하는 과정에서 일어날 수 있는
보안 문제를 사전 방지 하기 위해서 리눅스 설계자는 System call이라는 것을 고안해냈다.
*System call이란 커널의 특정 기능을 하는 함수를 호출함을 의미하는데,
여기서 커널이 해당 입출력 명령을 검사한 후에 I/O를 대신 진행해주는 개념이다.
요건 다음 시간에 알아보자...!
'컴퓨터 공학 > 운영체제' 카테고리의 다른 글
DeadLock - (5) (0) | 2022.05.09 |
---|---|
프로세스 동기화 - (4) (0) | 2022.05.09 |
프로세스 매니지먼트 - (3) (0) | 2022.02.17 |
컴퓨터 시스템과 System Call - (2) (0) | 2022.02.10 |
Comments