操作系统2

操作系统启动过程

BIOS和主引导记录MBR

实模式和保护模式
实模式(实地址模式,REAL MODE)
  • 程序按照8086寻址方法访问0h–FFFFFh(1MB:1024*1024=2^20)空间
  • 寻址方式:物理地址(20位)=段地址(16位):偏移地址(16位)
  • CPU单任务运行
保护模式(内存保护模式,PROTECT MODE)
  • 寻址方式:段(32位)和偏移量(32位),寻址4GB空间
    • 段的属性:起始地址,存取属性,权限级别,…
  • 段页式寻址机制(段、页)
  • 虚拟地址、进程、封闭空间
  • 应用程序和操作系统的运行环境都被保护(保护的对象是内存)
  • CPU支持多任务
    在这里插入图片描述

系统BIOS

Basic I/O System。bios既不属于硬件也不属于软件,而是Firmware固件。
固件是以硬件的方式存在,但内部是软件。

  • 基本输入/输出系统
  • 位置 F0000~FFFFF 最后的64k

Bios功能:

  • 系统启动配置
  • 基本的设备I/O服务
  • 系统的加电自检和启动
    在这里插入图片描述
    在这里插入图片描述
    bios的I/O服务用中断的方式来实现。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    CS:IP初始化就是FFFF0指令。这是一条跳转指令JUMP POST:POST位于系统BIOS内部。
    在这里插入图片描述
    在这里插入图片描述
    bios读硬盘的时候,先读首扇区MBR。这个启动记录512个字节。最后两个字节一定是0xAA55h。
    在这里插入图片描述
    在这里插入图片描述

操作系统启动过程

启动过程

从加电到用户工作环境准备好的过程

  • (1)初始引导
  • (2)核心初始化
  • (3)系统初始化

初始引导的目的:

  • 把操作系统的核心装入内存并使之开始工作接管计算机系统
    过程:

  • 加电,JUMP POST

  • …BIOS中的启动程序运行

  • 启动程序:

    • 读取0面0道第1扇区内容(MBR)
    • 加载MBR中的引导程序
  • 引导程序:

    • 根据相关参数,读取硬盘指定位置的文件到内存
    • 加载硬盘上的操作系统内核,并初始化基本参数

    常见的引导程序:
    (1)ntldr
    (2)GRUB
    (3) bootmgr
    (4)LILO

核心初始化
  • 目的:OS内核初始化系统的核心数据
  • 典型工作:
    • 各种寄存器的初始化
    • 存储系统和页表初始化
    • 核心进程构建
系统初始化
  • 为用户使用系统做准备,使系统处于待命状态
  • 主要工作:
    • 初始化文件系统
    • 初始化网络系统
    • 初始化控制台
    • 初始化图形界面

    • 在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

操作系统的生成

  • 满足特定硬件环境和用户需要,组装构建操作系统过程。
操作系统生成的主要步骤
  • 根据硬件环境/用户要求配置功能模块和构造参数
  • 构建(build)OS的影像
操作系统生成的前提
  • 操作系统由可拆装的模块构成
  • 有交互式配置工具
  • 有映像构建(build)工具
    在这里插入图片描述
操作系统的生成

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
title指示提示信息
root表示启动设备、路径
kernel启动映像文件根目录
在这里插入图片描述

操作系统用户界面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用户shell脚本编程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

系统调用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
系统调用的特点:

  • 一般涉及核心资源或硬件的操作
  • 运行于核态
  • 每一个系统调用具有唯一的编号:ID
  • 调用过程中会产生中断,自愿中断
    在这里插入图片描述
    在这里插入图片描述
    先用AH来接收用户指定的系统调用号,然后用INT 21H进行自愿中断
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    printf和exit都会引发中断(隐式的)
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【实验目的】 1. 理解进程的概念,熟悉进程的组成; 2. 用高级语言编写和调试一个进程调度程序,以加深对进程调度算法的理解。 【实验准备】 1. 几种进程调度算法  短进程优先调度算法  高优先权优先调度算法  先来先服务调度算法  基于时间片的轮转调度算法 2. 进程的组成  进程控制块(PCB)  程序段  数据段 3. 进程的基本状态  就绪W(Wait)  执行R(Run)  阻塞B(Block) 【实验内容】 1. 例题 设计一个有 N个进程共行的进程调度程序。 进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。 每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。进程的运行时间以时间片为单位进行计算。每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。重复以上过程,直到所要进程都完成为止。 4. 实验题目  编写并调试一个模拟的进程调度程序,采用“最高优先数优先”调度算法对五个进程进行调度。“最高优先数优先”调度算法的基本思想是把CPU分配给就绪队列中优先数最高的进程。静态优先数是在创建进程时确定的,并在整个进程运行期间不再改变。动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一定原则修改优先数。例如在进程获得一次CPU后就将其优先数减少1。或者,进程等待的时间超过某一时限时增加其优先数的值,等等。  编写并调试一个模拟的进程调度程序,采用“轮转法”调度算法对五个进程进行调度。轮转法可以是简单轮转法、可变时间片轮转法,或多队列轮转法。简单轮转法的基本思想是:所有就绪进程按 FCFS排成一个队列,总是把处理机分配给队首的进程,各进程占用CPU的时间片相同。如果运行进程用完它的时间片后还为完成,就把它送回到就绪队列的末尾,把处理机重新分配给队首的进程。直至所有的进程运行完毕。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值