目录
1、操作系统概述1.1 操作系统做了什么?1.1.1 操作系统做了什么?(1/4)1.1.2 操作系统做了什么?(2/4)1.1.3 操作系统做了什么?(3/4)1.1.4 操作系统做了什么?(4/4)1.1.5 从上述步骤中得到什么?
1.2 操作系统的定义和作用1.2.1 操作系统的定义1.2.2 操作系统的三个作用
1.3 操作系统的主要特性1.4典型操作系统的架构1.5 操作系统的分类
1、操作系统概述
1.1 操作系统做了什么?
1.1.1 操作系统做了什么?(1/4)
假设有一个简单的C语言程序:helloworld,我们通过这个简单程序的执行过程来看一下操作系统对这个程序的过程有哪些支持!
#include<stdio.h>
int main(int argc
,char *argv
[])
{
puts("Hello world")
return 0;
}
这个程序的主要功能是调用一个puts函数,其作用是在显示器上显示字符串"hello world",下面看一下这个程序的执行过程。
1.1.2 操作系统做了什么?(2/4)
首先启动程序执行,用户告诉操作系统执行helloword程序,有以下方式可以告诉操作系统执行哪个程序,比如说可以在命令行输入命令,也可以通过鼠标双击helloworld的程序图标等等;操作系统接到用户请求之后,会根据用户提供的文件名到磁盘上找到对应程序的相关信息,找到信息后检查程序是否是一个可执行文件,有的时候一个文件不是可执行文件,这时候操作系统会报错,如果是一个可操作文件,则操作系统才能执行;检查完文件的类型后,操作系统会根据程序的首部信息来确定代码和数据在可执行文件中的位置,并计算出相应磁盘块的地址;为了执行文件,操作系统首先创建一个新的进程,并将helloword可执行文件映射到该进程结构,表示由该进程执行helloworld程序;做完以上工作,操作系统便把控制权交给调度程序,我们假设调度程序正好选中了Helloworld程序,那么由操作系统为可执行文件设置CPU上下文环境,并跳到程序开始处,准备执行这个程序,下一个指令周期便是执行这个helloworld文件。
1.1.3 操作系统做了什么?(3/4)
当执行helloworld程序的第一条指令的时候会发生缺页异常。我们知道,程序在执行的时候需要先将代码和数据读入内存,CPU才能执行;但是helloworld的代码和数据还没有读入内存,这时候硬件机制就会捕获出缺页异常,并且把控制权交给操作系统;操作系统管理了计算机系统中的内存,有很多种内存,如果有页式存储管理方案,那么内存就会有很多管理页面,操作系统的内存管理模块就会分配一页空闲的物理内存,并且根据前面计算出的磁盘管理地址把helloworld的程序代码读入内存,然后继续执行helloworld程序;有的时候程序很大,一页内存不够。因此在执行过程中会多次产生缺页异常,会不断从磁盘读入程序到内存;Helloworld程序执行puts函数(系统调用),puts的作用是在标准的输出设备上显示字符串,标准的输出设备通常是显示器等;puts实际上是系统调用,由操作系统完成这个功能,所以控制权又转回给操作系统,操作系统找到要将字符串送到哪一个显示设备,通常这个设备是由进程控制的,所以操作系统把要写的字符串送给进程;
1.1.4 操作系统做了什么?(4/4)
控制设备的进程会告诉控制设备的窗口它要显示字符串,窗口系统确认这是一个合法的操作,然后将字符串转换成像素,将像素写入设备的存储映像区;视频硬件将像素转换成显示器可接收的一组控制信号/数据信号;显示器解释信号,激发液晶屏;最后一步,我们在屏幕上看到了“hello world”;
1.1.5 从上述步骤中得到什么?
在CPU上执行用户程序,用户程序会不时请求操作系统的服务,因此在CPU上时而运行的是用户程序,时而是操作系统在运行。
helloworld程序在执行的时候需要操作系统来创建进程,因此会转到操作系统创建进程,进程创建完之后会从操作系统返回接着执行helloword程序,出现缺页异常之后控制权又交到操作系统,操作系统分配物理内存给用户程序,然后又转向用户程序执行,用户程序要执行puts程序又转向操作系统;
以上为从用户程序在执行过程中不断请求操作系统服务的角度来分析的;
我们现在换一个角度看用户程序的执行
实际上是操作系统在执行过程中如果选中一个程序,操作系统会通过调度执行helloworld程序,程序在执行过程中会不断陷入缺页异常,这样会不断访问操作系统的存储管理,然后由操作系统完成一些服务,然后通过调度再选中helloworld程序继续执行;
从上面的介绍可以看出,在一个程序的执行过程中,操作系统负责了程序的启动过程,负责了程序的执行过程,同时在执行的过程中不断为用户程序提供各种各样的支持;
1.2 操作系统的定义和作用
1.2.1 操作系统的定义
操纵系统是计算机系统中的一个系统软件,是一些程序模块的集合,程序模块相互协作、相互配合完成以下功能:
它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源;合理地组织计算机的工作流程,控制计算机的执行并向用户提供各种服务功能;使得用户能够灵活、方便地使用计算机,使整个计算机系统高效率运行;
1.2.2 操作系统的三个作用
资源的管理者,从操作系统的内部看,操作系统是资源的管理者
1.3 操作系统的主要特性
1.4典型操作系统的架构
1.5 操作系统的分类