操作系统到底是个什么鬼?(四)

系统调用
系统调用是一群预先定义好的模块

提供一条管道让应用程序能得到和核心程序的服务;

系统调用是系统程序和用户程序之间的接口

系统调用和一般函数调用之间的区别
补充:

用户进程所处的地址空间,CPU执行用户空间的代码时,则称进程处于用户态执行,用户态也叫目态

含有一切系统核心代码的地址空间,CPU执行系统核心代码时,则称进程处于系统态执行 系统态又叫做管态

1.系统调用在系统态;一般函数调用在用户态

2.执行过程不同,系统调用执行时,当前进程会被中断,因为系统调用的权限更高

3.因为系统调用会涉及到中断处理,所以系统调用的系统开销更大

系统调用的类型
1.进程控制类

2.文件操纵类

3.设备管理类

4.通信类

5.信息维护类

进程同步
同步机制:保证系统在多任务共享系统资源的情况下,程序执行能够得到正确得结果

多道程序环境下进程之间的关系:

资源共享关系
保证各进程以互斥的方式访问临界资源,其实临界资源就是不太够用的资源;

进程中访问临界资源的那段称为临界区,临界区就是一段代码。

互相合作关系
保证互相合作的各进程协调执行

同步机制应该遵循的准则:

1.空闲让进

2.忙则等待

3.有限等待

4.让权等待

**信号量机制

用信号量的取值来表示资源的使用情况,以此为基础来实现进程同步

所谓的信号量就是某种类型的变量,如:整型、记录型

1.整型信号量机制
表示共享资源的状态且只能由特殊的原子操作改变的整型量

原理:

定义一个整型变量,用该变量的值来标记资源的使用情况,初始值一般设置为1。

如果大于0,说明有资源可用

如果小于等于0,说明资源忙,需要等待

原子操作:wait,signal

2.记录型信号量机制

3.AND型信号量机制

猜你喜欢

转载自blog.csdn.net/weixin_46107282/article/details/113955915