zoukankan      html  css  js  c++  java
  • 操作系统-概述

    一、是什么

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

    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、嵌入式操作系统

  • 相关阅读:
    mapbox-gl开发:deck.gl轨迹图效果
    vscode双击选中单词,设置短横线不分隔
    CSS自定义滚动条样式,兼容IE浏览器
    flv 视频播放器
    mapbox、echarts实现地图流动效果
    echarts 小时图
    deckgl-triplayer流动效果
    vue使用flv视频监控组件
    qt学习中遇到的问题及处理方法
    GitHub入门
  • 原文地址:https://www.cnblogs.com/yb38156/p/9651300.html
Copyright © 2011-2022 走看看