관리 메뉴

코딩하는 락커

01. 운영체제 소개 본문

📀 운영체제

01. 운영체제 소개

락꿈사 2021. 11. 4. 18:28

운영체제가 해 주는 서비스

1. 컴퓨터 사용자를 위한 서비스

     ①  User Interface: ex) CLI, GUI

     ②  Program 수행: 프로그램을 주메모리에 탑재 및  수행

     ③  File 조작 및 관리: 파일 읽기/쓰기, 디렉토리 읽기/ 쓰기, 파일 생성, 제거, 변경, 보호 등 파일과 관련된 모든 동작

     ④  통신: 프로세스간 통신(IPC), 네트워크를 통한 컴퓨터 간의 통신

     ⑤  오류 탐지 및 처리

 

2. 자원 공유를 통해 시스템의 효율적인 동작을 위한 기능

     ①  자원 할당(resource allocation): CPU, main memory, I/O device     

     ②  보호 및 보안(protection & security)

     : 보호(protection) - 시스템이 보유하고 있는 모든 내부 자원에 대한 접근을 관리, 제어

     : 보안(security)

      - 외부로부터의 침투에 대한 방어

      - 불법적 접근 시도로 부터 외부 입출력 장치 방어까지 포괄적인 개념

      - ex) 사용자 인증(authentication)

3. 시스템 호출(System calls)

     ①  System call : 운영체제 서비스를 사용하기 위한 프로그램 인터페이스 ex) C - library, Java - API

     ②  보통 C, C++로 작성되어 있음

     ③  최근에는 직접적인 시스템 호출보다는 고급의 API (Application Program Interface)를 사용하여 access된다

     ex) Win32 API, LINUX API, JAVA API for JVM

 


 API - System Call - OS 사이의 관계

User Mode -> System Call -> Kernel Mode

 


Standard C Library

: Printf() 호출  -> Standard C Library 가  System call write ()  호출

 


운영체제 설계 및 구현 개념

1. 사용자들이 원하는 컴퓨터 시스템

     ①  사용하기 쉬움(easy to use)

     ②  신뢰성이 높음(reliable, safe)

     ③  빠름(fast)

2. 시스템 설계 목표

     ①  설계 및 구현하기 쉬움(easy to design and implement)

     ②  유지 보수성이 좋음(maintenance)

     ③  융통성이 좋음

     ④  오류가 발생하지 않음

     ⑤  효율적으로 동작함

3. 운영체제가 갖춰야 할 특징

     ①  모듈 단위로 구성(modular): 오류 발생시 모듈에서만 발생하도록 함

     ②  추상화(abstraction): 사용자는 자세한 구현 방법 등의 사항을 몰라도 사용할 수 있음

     ③  Complete: 필요한 기능은 모두 제공해야 함

     ④  Extensible: 새로운 장치 및 서비스의 점진적 추가와 자원의 동적 배치(Configuration)가 가능해야 함

4. 기본 설계 원리

     ①  PolicyMechanism을 분리

     : Policy - “무엇을 할 것인가

     : Mechanism - “어떻게할 것인가

5. 기존의 운영체제 구성 모델

     ①  Layered(계층 구조)

     ②  Kernel-based(커널 기반 주고): ex) 일반 운영체제

     ③  Served-based(client/sever): ex) web, cloud 시스템(아마존, 구글, 네이버)

     ④  Virtual machines(가상머신): Java

 


The UNIX OS consists of two separable parts

: Kernel 이 비대했음

 


Microkernel System Structure

1. 가능한 많은 부분을 kernel로부터 user공간, 즉 응용소프트웨어화 하여 kernel의 크기를 최소화시키는 kernel-based 설계 개념

2. 장점

     ①  Easier to extend a microkernel (확장하기에 좋음)

     ②  Easier to port the operating system to new architectures(다른 시스템에 이식하기 좋음)

     ③  More reliable(오류 발생 확률 적어짐)

     ④  More secure(보안성이 좋아짐)

3. 단점

     ①  Performance overhead(성능쪽 오버헤드가 일어날 수 있음, 커널 운영체제의 공통된 단점)

4. ex) Mach OS, Windows-NT

 


Java Virtual Machine (JVM)

1. Java 언어로 짜여진 프로그램만 수행할 수 있는 Virtual Machine으로 Windows, Mac OS, Linux 등 여러가지 다른 운영체제 상에서 생성될 수 있음

2. Java Program bytecode output을 생성하는 compiler에 의해 구현되고 이 bytecodeJVM 상에서만 수행 가능함

- bytecode: JVM이 이해할 수 있는 Stack-based 기계어

- Java Processor: byte를 해석하여 직접 수행할 수 있는 컴퓨터. mobile phone, MP3P 등을 Java Processor로 구현 가능

'📀 운영체제' 카테고리의 다른 글

04. 프로세스의 생성: Chapter 3. Processes (Part 2)  (0) 2022.05.16
03. 프로세스의 이해  (0) 2022.05.10
02. 운영체제의 개념과 구조  (0) 2022.05.09
03. CPU Scheduling  (0) 2021.11.04
02. Processes  (0) 2021.11.04
Comments