操作系统教程--原理和实例分析

1.2   操作系统是如何工作的

1,  程序的执行需要两个条件,

1)程序已经装入内存 2)程序计数器PC被置为该程序的起始地址,这就意味着系统执行的下一条指令是该程序的指令。

2,  关于自启动程序

      自启动程序包括两个部分,一个部分是引导程序,另一个 部分是主体程序。由第一部分引导进入第二部分。而第一部分在硬件上面连续存放,开机时由硬件引导。或者是由ROM中的一个最简单,最原始引导程序的原始引导程序,显然这个程序是不需要进行引导的。

3, 系统调用与一般程序调用的区别

      系统调用与一般程序调用的区别主要可以概括为三点:

      1) 同一程序中不包含调用的代码:系统调用是动态调用,被调用的代码在调用方的程序之外。这种方式的好处是(1)用户程序的长度缩短,减少了存储空间的重复占用。(2)当被调用方升级时,调用方不需要改变。调用方与被调用方相互独立。

程序中的调用分为静态链接和动态链接两类。静态链接主要是在程序执行的钱链接,主要是在编译时链接。静态链接主要有两个缺点:1)如果一个程序中调用了100个不同的库函数,那么程序中就需要包括100个不同的库的代码。这样程序的长度将大大增加。2) 如果程序中采用的某个库函数升级,则相应的程序需要升级并重新编译。动态链接可以克服这样的两个缺点,被调用方在执行时才会被加入。并且始终在程序之外。

系统调用和动态调用在这一点上是相同的,系统调用是动态调用的特殊情况。系统调用与普通动态调用的区别在于下述特点的3其他都是相同的。

(2)调用地址和返回地址都是不固定的:静态子程序或函数调用方式的调用地址都是固定的,包含在调用语句中。返回地址是不固定的(因为同一子程序可能多次被调用),在程序执行过程中通常通过堆栈来保存和弹出地址。而对于系统调用和动态链接方式,其调用和返回地址都是不固定的。系统调用指令中不包含调用地址,只包含功能号,是按功能号的调用(在可执行的目标程序中)。在操作系统中,由系统调用分支程序通过系统调用分支表(操作系统内部的一个数据结构)将功能号转换成为相应的系统调用地址。

(3)在系统调用指令和系统调用返回指令的执行过程中,要分别保存设置和恢复程序状态字(PSW),这与系统态(又称核心态,管态)和用户态(又称目态)的切换有关, PSW 中有一位系统态/用户态标志位。若该位的表示系统状态,表示系统正在执行系统内部的代码;若该位表示用户态,则表明现在正在执行用户程序代码。系统态和用户态的切换,是由系统调用和系统调用返回指令内自动完成,而没有用一条专门的指令。

4, 中断

中断是指计算机在执行过程中,当遇到需要立即处理的事件时,立即暂停当前正在进行的程序,转去执行有关服务程序,处理完成后自动返回原程序。

提供中断指令的计算机系统,通常在两条指令之间检测中断是否发生。为了快速处理中断程序,通常把所有中断处理程序地址集中放在一张表中,叫做中断向量表。需要注意的是

(1) 如何检测中断是否发生,不同的CPU有不同的做法。有的是在程序状态字(program statu word)中设一个中断位,而另一些CPU则不一定。

(2)中断并不一定与被中断程序与有关或者无关,

(3)在检测到中断发生时,并不一定转去中断处理程序,这涉及多级中断和中端屏蔽的概念。

(4)中断处理完毕后,并不一定返回来继续执行原来的程序。这涉及到可抢夺和不可抢夺的概念。

(5)中断向量表结构,大小,位置甚至名称对不同的CPU都不同。

5,并发

并发是指一个时间段有几个程序处于启动运行和运行完毕之间,且这几个程序躲在一个处理机上运行。但在一个时间点上只有一个程序在处理机上运行(区别于并行)。

6,进程

 进程是一个程序的动态执行,或者说一个正在执行中的程序。

进程和程序的区别主要有下面几点:

1) 进程是动态的,程序是静态的。2)程序仅仅是外存中的可执行的目标程序的代码文件,进程则不仅包含所执行的代码,还包括所处理的(数据)。3)多个进程可以执行统一程序。4)进程概念针对采用并发技术的操作系统,单任务的操作系统并不涉及进程的概念。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值