일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- 운영체제
- 코드트리
- 코테
- 이것이자바다
- 웹개발기초
- 확인문제
- 백준가운데를말해요
- 카카오코테
- 백준10828
- 합성곱연산
- 백준괄호
- 이것이자바다확인문제
- 이것이자바다9장
- 백준평범한배낭
- KT포트포워딩
- 스파르타코딩클럽
- BOJ
- 백준9012
- 컴퓨터비전
- 코딩테스트실력진단
- 백준스택
- 윤곽선검출
- BOJ1655
- 2019카카오코테
- 딥러닝
- 백준온라인저지
- 냅색알고리즘
- 백준
- 가운데를말해요
- Today
- Total
코딩하는 락커
01. 운영체제 소개 본문
운영체제가 해 주는 서비스
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 사이의 관계
Standard C Library
운영체제 설계 및 구현 개념
1. 사용자들이 원하는 컴퓨터 시스템
① 사용하기 쉬움(easy to use)
② 신뢰성이 높음(reliable, safe)
③ 빠름(fast)
2. 시스템 설계 목표
① 설계 및 구현하기 쉬움(easy to design and implement)
② 유지 보수성이 좋음(maintenance)
③ 융통성이 좋음
④ 오류가 발생하지 않음
⑤ 효율적으로 동작함
3. 운영체제가 갖춰야 할 특징
① 모듈 단위로 구성(modular): 오류 발생시 모듈에서만 발생하도록 함
② 추상화(abstraction): 사용자는 자세한 구현 방법 등의 사항을 몰라도 사용할 수 있음
③ Complete: 필요한 기능은 모두 제공해야 함
④ Extensible: 새로운 장치 및 서비스의 점진적 추가와 자원의 동적 배치(Configuration)가 가능해야 함
4. 기본 설계 원리
① Policy와 Mechanism을 분리
: 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
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에 의해 구현되고 이 bytecode는 JVM 상에서만 수행 가능함
- 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 |