系统调用
系统调用是一群预先定义好的模块
提供一条管道让应用程序能得到和核心程序的服务;
系统调用是系统程序和用户程序之间的接口
系统调用和一般函数调用之间的区别
补充:
用户进程所处的地址空间,CPU执行用户空间的代码时,则称进程处于用户态执行,用户态也叫目态
含有一切系统核心代码的地址空间,CPU执行系统核心代码时,则称进程处于系统态执行 系统态又叫做管态
1.系统调用在系统态;一般函数调用在用户态
2.执行过程不同,系统调用执行时,当前进程会被中断,因为系统调用的权限更高
3.因为系统调用会涉及到中断处理,所以系统调用的系统开销更大
系统调用的类型
1.进程控制类
2.文件操纵类
3.设备管理类
4.通信类
5.信息维护类
进程同步
同步机制:保证系统在多任务共享系统资源的情况下,程序执行能够得到正确得结果
多道程序环境下进程之间的关系:
资源共享关系
保证各进程以互斥的方式访问临界资源,其实临界资源就是不太够用的资源;
进程中访问临界资源的那段称为临界区,临界区就是一段代码。
互相合作关系
保证互相合作的各进程协调执行
同步机制应该遵循的准则:
1.空闲让进
2.忙则等待
3.有限等待
4.让权等待
**信号量机制
用信号量的取值来表示资源的使用情况,以此为基础来实现进程同步
所谓的信号量就是某种类型的变量,如:整型、记录型
1.整型信号量机制
表示共享资源的状态且只能由特殊的原子操作改变的整型量
原理:
定义一个整型变量,用该变量的值来标记资源的使用情况,初始值一般设置为1。
如果大于0,说明有资源可用
如果小于等于0,说明资源忙,需要等待
原子操作:wait,signal
2.记录型信号量机制
3.AND型信号量机制