• 第二章 操作系统概述


    toc

    一、操作系统

    作用:

    • 操作系统为程序员屏蔽了硬件细节,并为程序员使用系统提供方便的接口。
    • 操作系统为计算器管理各种资源,比如处理器、存储器、I/O设备等

    操作系统与普通软件一样,都是由处理器执行的一段或一组程序;操作系统经常释放控制,且必须依赖CPU才能恢复控制。
    操作系统控制处理器使用其他资源,并控制其他程序的执行时机。

    操作系统的操作模式分为用户态与内核态:

    • 用户程序执行在用户态,在用户态下,某些内存区域是受到保护无法访问的,特权指令也不允许执行。
    • 操作系统运行在内核态,在内核态下,受保护的内存区域是可以访问的,特权指令也可以执行。

    二、进程

    进程由三部分组成:

    1. 一段可执行的程序
    2. 程序所需的相关书数据(变量、工作空间、缓冲区等)
    3. 程序的执行上下文(进程状态)

    进程状态

    操作系统用来管理和控制进程所需的内部数据。包括了寄存器(PC和数据寄存器)的内容、系统使用的信息(如进程优先级以及进程是否在等待I/O事件的完成)。

    进程管理方式:

    操作系统给每个进程(包含程序、数据和上下文信息)分配一块存储器区域,并维护进程表中进行的记录。
    进程表包含记录每个进程的表项,表项内容包括
    1、指向进程的存储块地址的指针
    2、该进程块的部分或全部执行上下文

    相关寄存器:

    进程索引寄存器包含当前正在控制处理器的进程在进程表中的索引。
    程序计数器指向该进程中下一条执行的指令。
    基址寄存器和界限寄存器定义了该进程所占据的存储器区域:基址寄存器中保存了该存储器区域的开始地址,界限寄存器中保存了该区域的大小(以字节或字为单位)。
    程序计数器和所有的数据引用相对于基址寄存器被解释,并且不能超过界限寄存器中的值,这样既可以保护内存进程间不会相互干涉。

    三、内存管理

    分页机制与虚拟内存

    虚拟存储器机制允许程序从逻辑的角度访问存储器,而不考虑物理内存上可用的空间数量。
    程序通过虚地址访问内存,虚地址由页号和页中偏移量组成。分页系统提供了虚地址到内存中实地址(物理地址)之间的动态映射。

    一个进程的所有页都保留在磁盘中,当进程执行时,一部分在内存中,当需要访问的页不在内存中时。存储管理硬件检测到,并载入这个缺少的页。

    进程隔离与内存共享

    通过给每个进程唯一的不重叠的虚存空间来实现进程隔离,通过使两个虚存空间的一部分重叠来实现内存共享,文件或其中一部分可以复制到虚存中供程序操作。

    四、调度和资源管理

    调度三因素

    1. 公平性:提供公平的资源访问机会
    2. 有差别的响应:区分不同作业,动态的作出决策,系统会尽可能的迅速调度等待I/O的进程,以尽早释放设备供其他进程使用
    3. 有效性:希望获得最大吞吐量和最小响应时间

    调度与资源分配的主要组件

    短期队列

    短期队列由在内存中(或至少最基本的一部分在内存中)并等待处理器可用时随时准备运行的进程组成。具体选择哪一个运行取决于短期调度器(分派器)。

    两种常用调度策略

    1. 时间片轮转:依次给队列中的每一个进程一定的时间
    2. 优先级进行调度:不同的进程分配不同的优先级

    长期队列

    长期队列是等待处理器的新作业的队列,操作系统通过把长期队列中的作业转移到短期队列中来实现往系统中添加作业。

    I/O队列

    每个I/O设备都有一个I/O队列。所有等待使用一个设备的进程在该设备的队列中排队,同时操作系统决定把可用的I/O设备分配给哪一个进程。

    调度时机

    当发生中断时,操作系统在中断处理程序入口得到处理器的控制权。在任何情况下,只要处理中断或服务调用,就会请求短期调度器选择一个进程执行。

    五、现代操作系统特征

    单体内核:调度、文件系统、网络、设备驱动器、存储管理等在一个进程中实现,所有元素都共享相同的地址空间。
    微内核:内核只提供一些最基本的功能,包括虚存空间、进程通信(IPC)和调度,其他系统服务运行在用户态。

    六、Windows体系结构

    七、Linux体系结构









    原创不易,转载请注明出处,谢谢
  • 相关阅读:
    Hibernate一对多OnetoMany
    80端口被占用 PID = 4解决办法
    Devexpress Barmanager设置
    通过C# 打开一个应用程序
    C#DataTable操作
    C# Winform 双屏显示
    Dev gridview 调整字体大小
    在静态页面html中跳转传值
    js 求两个日期之间相差天数
    jQuery 知识积累
  • 原文地址:https://www.cnblogs.com/Keeping-Fit/p/14546301.html
Copyright © 2020-2023  润新知