• 操作系统的结构设计怎么搞?带你理解理解


    目录

    一. 软件工程的基本概念

    二. 传统的操作系统结构 

    2.1 无结构操作系统(第一代)

    2.2 模块化OS结构(第二代)

    2.3 分层式OS结构(第三代)

    三. 微内核(MicroKernel)OS结构 

    3.1 微内核的基本功能 

    3.2 客户/服务器模式(Client-Server Model) 

    3.3 OS设计原则

    四. 现代操作系统的特点 


    一. 软件工程的基本概念

    • 软件:
    1. 是指当计算机运行时,能提供所要求的功能和性能的指令和程序的集合,以及该程序能够正确地处理信息的数据结构;
    2. 规范的软件还应具有描述程序功能需求以及程序如何操作使用的文档;
    • 软件工程:
    1. 是指运用系统的、规范的和可定量的方法,来开发、运行和维护软件;
    2. 目的是为了解决在软件开发中所出现的编程随意、软件质量不可保证以及维护困难等问题;

    二. 传统的操作系统结构 

    2.1 无结构操作系统(第一代)

            设计者主要任务是功能实现和系统高效,而不考虑操作系统的结构性。

    • 其特点:
    1. 一组过程的集合;
    2. 各过程之间可以相互调用;
    3. 在操作系统内部不存在任何结构;
    • 主要缺点:
    1. 操作系统庞大杂乱,缺乏清晰的程序结构,调试困难;
    2. 程序难以阅读和理解,增加了维护人员的负担;

    2.2 模块化OS结构(第二代)

            20世纪60年代,OS采用“模块化程序设计”技术,模块由众多服务过程(模块接口)组成,可以随意调用其他模块中的服务过程;

    • 优点:
    1. 具有一定灵活性,在运行中的高效率;
    • 缺点:
    1. 功能划分和模块接口难保正确和合理;
    2. 模块之间的依赖关系(功能调用关系)复杂(调用深度和方向),降低了模块之间的相对独立性--不利于修改
    模块化操作系统结构

    2.3 分层式OS结构(第三代)

    • 有序分层的概念;
    • 基本原则是每一层都仅使用其底层所提供的功能和服务,这样可使系统的调试和验证都变得容易;
    • 层次的设置:
    1. 程序嵌套;
    2. 运行频率;
    3. 公用模块;
    4. 用户接口;


    三. 微内核(MicroKernel)OS结构 

    • 把操作系统分成若干分别完成一组特定功能的服务进程,等待客户提出请求;而系统内核只实现操作系统的基本功能(如:虚拟存储、消息传递);
    • 微内核(MicroKernel):
    1. 将更多操作系统功能放在核心之外,作为独立的服务进程运行;
    2. 服务进程,如进程服务器、存储管理服务器、文件服务器;
    3. 客户进程(系统客户和应用客户)--需支持多进程

    3.1 微内核的基本功能 

            微内核所提供的功能,通常都是一些最基本的功能:

    • 进程管理;
    • 存储器管理;
    • 进程通信管理;
    • I/O设备管理;

    3.2 客户/服务器模式(Client-Server Model) 

    • 为了提高OS的灵活性和可扩充性而将OS划分为两部分, 一部分是用于提供各种服务的一组服务器(进程); 另一部分是内核,用来处理客户和服务器之间的通信;
    • 所有这些服务器(进程)都运行在用户态。 当有一用户进程(现在称为客户进程)要求读文件的一个盘块时,该进程便向文件服务器(进程)发出一个请求 ;
    • 将此应答回送给请求客户;内核还有与硬件直接相关的一些功能;

    3.3 OS设计原则

    • 可维护性:容易修改与否称为可维护性;
    1. 改错性维护:改正已发现的错误;
    2. 适应性维护:修改软件,使之适应新的运行环境(硬件环境和软件环境);如:操作系统的移植。
    3. 完善性维护:增加新功能;
    • 可靠性:
    1. 正确性:正确实现所要求的功能和性能;
    2. 稳健性:对意外(故障和误操作)作出适当的处理;
    • 可理解性:易于理解,以方便测试、维护和交流;
    • 性能:有效地使用系统资源;尽可能快地响应用户请求;

    四. 现代操作系统的特点 

    • 微内核结构:只给内核分配最基本的功能,可简化实现,提供灵活性;
    • 多线程:把执行一个应用程序的进程划分成可以同时运行的多个线程。提高程序的执行效率。
    • 对称多处理:有多个处理器共享同一个主存储器和I/O设备,可以执行相同的功能。提高并行性、可靠性;
    • 分布式操作系统;
    • 面向对象设计:提高模块独立性,便于扩展;

             有兴趣的朋友还可以看一下下面的两篇,顺着看下去就好了: 

  • 相关阅读:
    JDBC-03:PreparedStatement如何实现对数据库的增删改查操作
    零基础自学javase黑马课程第十六天
    JVM学习总结笔记2
    A1140 Look-and-say Sequence(20分)PAT 甲级(Advanced Level) Practice(C++)满分题解【字符串处理】
    24_ue4进阶末日生存游戏开发[按路径巡逻]
    Unity 热更--AssetBundle学习笔记 0.8
    LeetCode220729_59、打家劫舍
    The 2021 CCPC Weihai Onsite(vp补题记录,A,J,D,G)
    管理员必须知道的RADIUS认证服务器的部署成本
    QT发送Get请求并返回内容
  • 原文地址:https://blog.csdn.net/weixin_53919192/article/details/127462613