MAKE IT SIMPLE

운영체제(OS)란 - (1) 본문

컴퓨터 공학/운영체제

운영체제(OS)란 - (1)

punchlips 2022. 1. 11. 19:40

1. Computer 란 무엇이고 어떻게 구성되는지?

 

※ 컴퓨터의 구성

하드웨어
Hardware
컴퓨터의 모든 물리적 부품
  • 기능: 입력, 출력, 제어, 기억, 연산
  • ex) 메인보드, 사운드카드, 기억장치 등등
소프트웨어
Firmware
하드웨어를 제어하는 가장 기본적인 프로그램
  • ex) 바이오스(Bios) - 컴퓨터 부팅 시 가장 먼저 기동되는 애
Operation System
컴퓨터 하드웨어 자원과 소프트웨어 자원을 연결 및 운영 관리하는 프로그램
  • 하드웨어와 소프트웨어간의 소통을 도와주는 Interface 라고...(응?)
  • 종류

    • Windows - Windows XP, Windows CE.NET ... (데스크탑의 절대 강자)
    • Linux - Redhat, Fedora, CentOS, Ubuntu ...
    • Unix - Solaris, HP-UX ...
    • RTOS(Real-Time OS) - VxWorks, pSOS, Nucleus ...
  • 윈도우를 제외한 모든 OS 는 유닉스 계열이라고 생각하면 된다
Middleware
두 매개체를 연결하여 데이터를 주고받을 수 있도록 매개 역할(레이어)을 하는 소프트웨어
  • 운영체제 ↔ SW, 클라이언트 ↔ 서버, 서버 ↔ 서버 등등 영역이 광범위함(하드웨어, 프로토콜, 통신환경)
  • 종류
    • 원격 프로시저 호출(Remote Procedure Call, RPC)
    • 메세지 지향 미들웨어(Message Oriented Middleware, MOM)
    • 객체 요청 브로커(Object Request Broker, ORB)
    • DB 접속 미들웨어
    • TP 모니터 (Transaction Processing Monitor)
Application
플랫폼 위에서 구동되는 프로그램.  우리가 아는 그 응용 소프트웨어(SW)
  • ex) 워드 프로세서, 스프레드 시트 등등

 


 

2. 운영체제에 대해서 좀 더 자세하게 알아보쟈

 

▷ 운영체제의 존재 이유(목적) - 컴퓨터를 최대한 효율적으로 사용하려고!

  1. 효율성 - 하드웨어 자원 관리가 운영체제의 가장 주된 목적임.
  2. 안전성 - 비정상적인 작업으로부터 컴퓨터 자원을 보호.
  3. 확장성 - 하드웨어 인터페이스를 제공해 다양한 시스템 자원을 추가하거나 제거하기 편리해짐.
  4. 편리성 - 사용자 인터페이스(=GUI)를 제공해 대부분의 작업을 마우스로 수행할수 있음.
  5. 형평성 - 모든 작업이 운영체제가 정한 순서에 맞게 평등하게 진행됨.
 

▷ 부팅과 운영체제의 동작 원리

  1. 컴퓨터의 전원이 켜지면 프로세서(CPU) 에서 ROM 에 있는 내용을 읽는다.
     → ROM 안에는 POST(Power-On Self-Test), 부트 로더(Boot Loader)가 저장되어 있다.
  1. POST 는 전원이 켜지면 가장 처음에 실행되는 프로그램으로 현재 컴퓨터의 상태를 검사한다.
  2. POST 작업이 끝나면 부트 로더가 실행된다.
  3. 부트 로더는 하드디스트에 저장되어 있는 운영체제를 찾아서 메인 메모리(RAM)에 가지고 온다.

 

 

 

▷ 운영체제의 운용 기법

1세대
일괄 처리 시스템
(Batch Processing)
초기의 컴퓨터 시스템에서 사용됨. 일정량 / 일정 기간동안 데이터를 모아 한꺼번에 처리.
2세대
다중 프로그래밍 시스템
(Multi-programming System)
하나의 CPU와 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식.
  • 하나의 주기억 장치에 다수의 프로그램을 올려놓고 하나의 CPU와 대화
  • CPU 의 사용률과 처리량 증가
시분할 시스템 - 범용
(Time Sharing System)
Multi User 가 사용하는 시스템에서 사용되는 프로그램에 대한 작업을 하나의 CPU에 번갈아 할당해가며 처리함.  라운드 로빈(Round Robin) 방식이라고도 함
  • 각자 독립된 컴퓨터를 사용하는 느낌을 줌. 하드웨어의 효율적 사용.
  • 효율은 좋아지나 개인별 사용자 입장에서는 반응 속도가 느릴 수 있음.
다중 처리 시스템
(Multi-processing System)
여러개의 CPU와 하나의 주기억장치로 다수의 프로그램을 동시에 처리하는 방식
  • 하나의 CPU 가 고장나더라도 다른 CPU를 이용할 수 있으므로 시스템의 신뢰성과 안전성이 높음
  • 프로그램의 처리 속도는 빠르지만 기억장치, 입출력장치 등의 자원공유에 대한 문제점을 해결해야 함
실시간 처리 시스템
(Real Time Processing)
데이터 처리 요구 즉시 처리하여 결과를 산출하는 방식
  • 처리 시간이 단축되고, 처리 비용이 절감 됨.
  • 교통 제어, 온라인 뱅크 업무 등 시간에 제한을 두고 수행되는 작업에 주로 사용됨
3세대
다중 모드 처리
(Multi-mode Processing)
일괄 처리 시스템, 시분할 시스템, 다중 처리 시스템, 실시간 처리 시스템을 한 시스템에서 모두 제공
4세대
분산 처리 시스템
(Distributed System)
여러개의 컴퓨터(프로세서) 를 통신 회선으로 연결하여 하나의 작업을 처리하는 방식
  • 각 단말 장치나 컴퓨터 시스템은 고유의 운영체제와 CPU, 메모리를 가지고 있음
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)
커널(운영체제)에 요청하는 명령어를 해석해주고 그 결과를 출력해줌.
  • 많은 프로그램들의 메모리 교통 정리 = job control
  • Command, Job을 동의어라고 생각하면 됨

 

 


 

 

3. 그래서 Linux 는 무엇이고 왜 Linux를 공부해야 하는 거임?

 

  1. 리눅스는 IT 산업 전반에서 쓰이는 가장 핫한 운영체제. IT 산업의 제반 기술의 세부 구현 방식을 알 수 있음.
  2. 네트워크, 브라우저, WAS 웹 어플리케이션, 보안 유틸리티 등 수많은 프로그램이 리눅스 기반 환경에서 동작함.
  3. 오픈소스 기반 운영체제. 세부 동작 원리 파악 가능.
  4. 잘 알수록 연봉 업업됨 개쥬아><

 

※ 운영체제의 간단 역사

: 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