进程的描述
1.引言(proface)
从源程序到可执行程序要经历:编译->链接->装入,再多道程序环境下,程序要想运行必须先创建进程,创建进程就必须先将程序和数据加载到内存中
编译:通过编译程序Compiler将源程序编译成目标模块
链接:通过链接程序Linker将目标模块和库函数链接到一起形成装入模块Load Module
有三种实现方式:1.静态链接:事先进行链接,以后不可以拆开的链接方式
2.装入时动态链接:装入目标模块时,若发生外部模块调用,则把外部模块也装入内存
3.运行时动态链接:对某些模块的链接推迟到执行时才执行,就是,在执行过程中,当发现一个被调用的模块尚未装入内存时,立即又OS去找到该模块,并将之
装入内存,把他链接到调用者模块上,优点:在执行过程中未用到的目标模块,都不会被调入内存和链接到装入模块上,加快了装入速度,和节省大量的内存空间
装入:装入程序将Load Module装入内存,有3中装入方式 解决问题:逻辑地址和物理地址映射转换问题
1.绝对装入方式 2.可重定位装入方式 3.动态运行时装入
2.常用命令 -o是输出为什么文件
3.使用Linux的top命令可查看进程
4.什么是进程?
5.进程的特征
6.程序和进程的区别
7.进程的基本状态
进程的基本状态有:
就绪状态:指进程已经处于准备好运行的状态(处于就绪队列上),即进程已经分配到处CPU以外的所有必要资源,只要获得CPU即可立即执行
运行状态:进程已经获得CPU,其程序正在执行的状态.任意时刻,对单处理机系统,只有一个进程处于执行状态,对多处理机系统,则有多个进程处于执行状态
阻塞状态:当前执行的进程由于发生某事件暂时无法继续执行的状态,此时进程调度程序将CPU分配给其他进程,当前进程进入阻塞队列.
扩充的状态有:
创建状态:引入进程创建状态视为了保证进程的调度必须在进程创建完成后进行调,处于创建状态的进程,当他获得资源和以及PCB初始化完成后,便可由创建状态转变为就绪状态
终止状态:进程的终止,是为了等待OS进行善后处理,最后将PCB清0,并将PCB返回给OS.释放PCB
挂起状态:这个状态不好讲,因为涉及了虚拟存储器和进程调度模型的知识,现在知道它就是将内存中暂时不能执行的进程通过虚拟存储器的页面置换
算法,将暂时无法执行的进程置换到外存的对换区上,(中级调度实际上就是虚拟存储器的对换功能)用来提高内存的利用率.
挂起操作是属于中级调度特有的操作,经过中级调度的进程进入外存的阻塞挂起队列,
重要名词解释:
由于进程的不断创建,系统资源特别是主存资源已不能满足所有进程运行的要求。这时,就必须将某些进程挂起,放到磁盘对换区,暂时不参加调度,以平衡系统负载;进程挂起的原因可能是系统故障,或者是用户调试程序,也可能是需要检查问题。
活跃就绪:是指进程在主存并且可被调度的状态。
静止就绪(挂起就绪):是指进程被对换到辅存时的就绪状态,是不能被直接调度的状态,只有当主存中没有活跃就绪态进程,或者是挂起就绪态进程具有更高的优先级,系统将把挂起就绪态进程调回主存并转换为活跃就绪。
活跃阻塞:是指进程已在主存,一旦等待的事件产生便进入活跃就绪状态。
静止阻塞:是指进程对换到辅存时的阻塞状态,一旦等待的事件产生便进入静止就绪状态。
3态(就绪,运行,阻塞)的进程转换模型:
linux的进程状态