---
sidebar_position: 1
tags: [CS, System, OS, Concepts]
---

# Concepts

## Definition

操作系统是一个大型的程序系统, 它负责(处理机管理, 存储管理, 设备管理, 文件系统):

- 计算机系统软、硬件资源的分配和使用
- 控制和协调并发活动
- 提供用户接口, 使用户获得良好的工作环境

## Features

- 并发性 : 能处理多个同时性活动的能力
- 共享性 : 多个计算任务对系统资源的共同享用
- 不确定性: 操作系统能处理随机发生的多个事件 - 程序运行次序的不确定性, 程序运行时间的不确定性

## Resource Management

### Processor

- 确定进程调度策略
- 给出进程调度算法
- 进行处理机的分派

### Memory

- 存储分配与存储无关性

为用户提供逻辑地址, 解决主存分配问题

- 存储保护

实现系统程序与用户程序之间的隔离, 实现不同用户程序之间的隔离

- 存储扩充

虚拟内存管理: 主存+磁盘, 为每个进程管理一个虚拟内存映射链表

### Device

- 设备无关性

用户向系统申请和使用的设备无关实际操作的设备, 操作系统为用户提供统一的逻辑设备(名)

- 设备分配(独享分配/共享分配/虚拟分配)
- 设备的传输控制(设备启动处理, 设备中断处理, 设备结束处理)

组织设备完成 I/O 操作, 并正确处理中断

### File

为用户提供一种简便、统一的存取和管理信息的方法, 解决信息的共享/数据的存取控制/数据的保密等问题:

- 实现用户的信息组织
- 提供存取方法
- 实现文件共享
- 保证文件安全
- 保证文件完整性
- 完成磁盘空间分配

## Evolution

- 单用户系统(45-55) -> 批处理系统(55-65) -> 多道系统(65-80) -> 分时系统(70-) -> 分布式系统
- 手工系统 -人机矛盾-> 联机批处理系统 -CPU I/O 矛盾
  -> 脱机批处理系统 -响应能力-> 执行系统(中断/通道) -并行->
  多道批处理系统(粗粒度) -> 分时系统(细粒度) -> 实时系统 -> 个人/网络/分布式系统

### Batch Processing System

作业成批送入计算机, 然后由作业调度程序自动选择作业, 在系统内(多道)运行

- 系统吞吐率高: 脱机/多道运行
- 作业周转时间长, 用户使用不方便, **缺少交互性**

### Time Sharing System

采用时间片(time slice)轮转(round robin)的方法, 使计算机同时为多个终端用户服务, 保证对每个用户都有足够快的响应时间, 并提供交互会话功能

- 并行性
- 独占性
- 交互性

单处理器系统: 处理器与设备/处理器与通道/通道与通道/设备与设备可以同时刻**并行**(真正意义上的同时进行)

### Real-Time System

实时系统对外部输入的信息, 能够在规定时间内处理完毕并作出反应(实时控制/实时信息处理) e.g. 嵌入式操作系统

- 可靠性
- 安全性
- 及时响应

## Virtual Machine

- 在裸机上配置了操作系统后便构成了操作系统虚拟机
- 裸机的指令系统: 机器指令; 操作系统虚拟机的指令系统: 系统调用

### User Interface

- 操作/命令接口(操作命令): 作业控制语言/键盘命令(CLI)/图形化用户界面(GUI)
- 程序接口(系统功能调用): 在用户程序中可以直接使用系统功能调用(system call)请求操作系统提供的服务

## Architecture

- Monolithic: 一体化结构
- Modular: 模块化结构
- Extensible Kernel: 可扩展内核 (`micro kernel`) 结构
- Hierarchical: 层次化结构

## Concurrency

- 程序执行的间断性
- 相互通信的可能性
- 资源分配的动态性
