本次笔记内容:
1.4 如何学习操作系统
1.5 操作系统的实例
1.6 操作系统的历史
1.7 操作系统结构
1.8 小结

文章目录

  • 操作系统的大概分支
  • 操作系统的历史和演变过程
  • 操作系统结构
    • 微内核
    • 外内核
    • 虚拟机 VMs

操作系统的大概分支

UNIX家族: UNIX BSD是由伯克利在UNIX之上开发的开源操作系统。UNIX和C语言由一个团队开发,UNIX由C开发。

Linux家族: 类UNIX的操作系统。安卓的内核也为Linux Kernel。

Windows家族: 最初为DOS系统。桌面占统治地位,移动端与服务器较为弱势。Windows操作系统让不懂计算机的开始使用计算机。

还有很多面向不同的对象的操作系统。

操作系统的历史和演变过程

  • 早期计算机使用纸带传输程序和数据,操作系统只起到加载作用。
  • CPU等硬件快速发展,计算机速度得到提升(批处理阶段/离线处理)。操作系统初步形成,初步体现操作系统并发特征。
  • 内存容量越来越大、CPU执行多个程序(多道程序设计)。在程序1等待I/O操作时,操作系统去执行程序2,而不是等待程序1。
  • 但是多道程序设计交互性不够好。为了更好地利用计算机资源,并且更好地和用户交互,出现了分时交互系统。两个程序轮流占用资源,比如程序A占用千分之一秒,程序B接上,运行千分之一秒后,又交给A。外设(时钟)定期产生中断,帮助操作系统完成相应的分时调度。
  • 个人电脑操作系统,Windows的GUI更加用户友善。
  • 多核多处理普遍存在。
  • 网络快速发展,出现了分布式操作系统。松耦合、紧耦合系统由分布式操作性管理。
  • 未来,生活中存在大量嵌入设备。

操作系统结构

简单的操作系统:MS-DOS(1981~1994)
不分模块的单体内核,用汇编语言设计。

Unix操作系统是1972由贝尔实验室设计,用C语言设计(有可移植性)。

微内核

为了将内核尽量小巧,提出微内核的设计,尽可能把内核功能移植到用户空间。功能作为进程,其之间通过内核的消息传递机制进行协调。微内核为松耦合结构。

微内核设计代价:程序间交互要通过内核,进行多次拷贝,开销较大。因此微内核在产业界应用较少。

外内核

速度快,主要在学术界有进一步研究。

ExoKernel(读作XO Kernel),与硬件打交道,完成硬件的

LibOS与软件打交道,程序可以面向自己的LibOS,再统一面向ExoKernel。

LibOS与应用紧耦合。ExoKernel完成硬件的隔离。

虚拟机 VMs

在传统OS之下,虚拟出多个计算机系统。在计算机系统上虚拟出一台完整的计算机,包含全部物理环境。多操作系统共享硬件资源。

【操作系统/OS笔记02】操作系统的历史、操作系统结构相关推荐

  1. 操作系统学习笔记 第一章:操作系统概述(王道考研)

    本文章基于 2019 王道考研 操作系统 考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com) 需要相关电子书的可以关注我的公众号BaretH后台回复操作系统 后续章节陆续推出- ...

  2. 【操作系统/OS笔记16】进程间通信(IPC),直接/间接通信与阻塞/非阻塞通信,信号,管道,消息队列,共享内存

    本次笔记内容: 11.8 IPC概述 11.9 信号.管道.消息队列和共享内存 文章目录 进程间通信(Inter-Process Communication, IPC)概述 为什么要进程间通信? 直接 ...

  3. 操作系统OS笔记(未完)

    硬件所做的事情 1.产生某种标记,比如中断标记 2.cpu得到这种标记后就会找到对应的中断处理然后告知操作系统 软件(操作系统) 1.保存当前程序状态,比如当前寄存器数据等等,以便中断结束后恢复 2. ...

  4. 【操作系统/OS笔记13】信号量、PV操作、管程、条件变量、生产者消费者问题

    本次笔记内容: 10.1 背景 10.2 信号量 10.3 信号量的使用 10.4 信号量的实现 10.5 管程 文章目录 信号量的提出背景 信号量(semaphore) 信号量数据类型 信号量类似铁 ...

  5. 【操作系统/OS笔记10】进程/线程的调度原则、调度算法、实时调度、多处理器调度、优先级反转

    本次笔记内容: 8.1 背景 8.2 调度原则 8.3 调度算法1 8.4 调度算法2 8.5 实时调度 8.6 多处理调度与优先级反转 文章目录 CPU调度背景 上下文切换 CPU调度 在进程/线程 ...

  6. 【操作系统/OS笔记03】启动、中断、异常和系统调用

    本次笔记内容: 2.1 启动 2.2 中断.异常和系统调用 文章目录 启动 BIOS加载Bootloader 操作系统与设备和程序交互 定义 从源头区分 从处理时间区分 从响应区分 中断.异常和系统调 ...

  7. 【操作系统/OS笔记01】课程概要、什么是操作系统

    本次笔记内容: 1.1 课程概述 1.2 什么是操作系统 1.3 为什么学习操作系统 文章目录 课程概要 纲要 实验工具 预备知识 操作系统 什么是操作系统? 操作系统包含什么 OS Kernel的特 ...

  8. 现代操作系统原理与实践03:操作系统结构

    目录 1 操作系统的目标 2 操作系统的机制与策略 3 操作系统复杂度管理方法 3.1 模块化(modularity) 3.2 抽象(abstraction) 3.3 分层(layering) 3.4 ...

  9. 【操作系统/OS笔记20】打开文件、文件数据块分配、空闲空间管理、多磁盘管理(RAID)、磁盘调度算法概述

    本次笔记内容: 12.12 打开文件的数据结构 12.13 文件的分配 12.14 空闲空间列表 12.15 多磁盘管理-RAID 12.16 磁盘调度 文章目录 打开文件 何谓"打开文件& ...

最新文章

  1. laravel5.0升级到5.1
  2. gin获取post参数
  3. 钉钉服务器端SDK PHP版
  4. haXe下体验jQuery
  5. 算法分析与设计-实验三 贪心算法设计
  6. 如何写登录的记住账号
  7. 5.spiders(文件夹)
  8. 2017.10.22 方格染色 失败总结
  9. QT_Astyle 代码管理工具
  10. 766. 托普利茨矩阵
  11. redis源码剖析(2):基础数据结构ADLIST
  12. Docker 外部访问容器Pp、数据管理volume、网络network 介绍
  13. 接口设计的一些小总结
  14. 华为交换机学习指南基于MAC地址划分VLAN
  15. 第一、二章 引论、算法分析
  16. HPGL(PLT文件格式)文件解析及VS2017工程源码
  17. 期权定价Python实现
  18. LTK5328内置自适应升压带PBTL模式_2X8W双声道音频功率放大器
  19. kali linux 入侵教程,kali linux 入侵wordpress wpscan工具使用方法
  20. Android如何分析排查ANR

热门文章

  1. WORD Application.Documents.Open函数返回null的一种解决方法
  2. springboot异常处理方式
  3. dev代码拷贝中文乱码的解决方案
  4. [Linux]使用宝塔面板做负载均衡时遇到的问题和解决办法
  5. java向mysql插入数据乱码问题解决
  6. 使用mysql悲观锁解决并发问题
  7. RecyclerView onClick
  8. 如何在Android上使背景20%透明
  9. Spring容器中 singleton 单例、 prototype多例
  10. 超简单的内网邮件服务器搭建(CentOS7 postfix+dovecot)