操作系统-概述

一、是什么

  操作系统是计算机系统中的一个系统软件,是一些程序模块的集合,我们以几个问号来体会下操作系统是干啥的

1、CPU利用率充足与否?I/O设备是否忙碌?

2、各种软硬件资源的管理是否公平合理

3、没有操作系统你要直接和硬件疙瘩打交道。。。也就是用户界面和编程接口

二、有啥用

1、资源管理者

 管哪些?(五大基本功能)

   进程/线程管理(CPU管理):进程线程状态,控制,同步互斥,通信,调度

   存储管理:分配回收,地址转换,存储保护,内存扩充

   文件管理:文件目录,文件操作,磁盘空间,文件存取控制

   设备管理:设备驱动,分配回收,缓冲技术

   用户接口:系统命令和编程接口

 怎么管?

  ·  跟踪记录资源的使用状况(数据结构和算法),如哪些资源空闲,分配给谁,允许使用多长时间

   确定资源分配策略--算法(静态策略和动态策略)

   资源的分配和回收

   提高资源利用率

   保护资源的使用

   协调多个进程对资源请求的冲突

2、向用户提供各种服务

 典型的服务:进程的创建执行;文件和目录的操作;I/O设备的使用;各类统计信息等

3、屏蔽复杂的硬件

 操作系统是硬件之上的第一层软件,如下图

 硬件是很繁杂的,操作系统屏蔽了硬件细节,给用户提供了一个扩展机器(虚拟机)

三、特征

首先我们给出四个词:并发、共享、虚拟、随机

并发和并行的概念解释太多了,我觉得解释得越细反而越纠结,用知乎里的一张图来表明下意思

并发:两个队列交替使用一台咖啡机

并行:两个队列同时使用两台咖啡机

并发和并行都可能涉及到线程,这里不详细说明,后面会详细讲

共享:分互斥共享(如打印机)和同时共享(如磁盘文件)

虚拟:如CPU的虚拟,存储器的虚拟,窗口和终端的虚拟

随机:进程的运行速度以及系统在某个时刻的状态不可预知

四、典型架构

  这里只介绍下Windows和Linux,Unix用的少,不讲。我们直接上图了解,具体的可以查阅相关资料来了解,我们需要

知道大体的架构图有哪些组成部分。

这是我们用的最多的Windows的

 抽象一下:

 

再抽象一层:

下面是Linux的

五、分类

1、批处理操作系统

2、分时操作系统

3、实时操作系统

4、个人计算机操作系统

5、网络操作系统

6、分布式操作系统

7、嵌入式操作系统

原文地址:https://www.cnblogs.com/yb38156/p/9651300.html