名词解释
作业:用户在一次事务处理过程中要求计算机系统所做的工作集合,包括用户程序,所需要的数据及控制命令等,作业是由一系列有序的步骤组成的。
进程:一个程序在一个数据集合上的一次运行过程,是资源分配的最小单位。
线程:线程是进程的一个实体,是被系统独立调度和执行的基本单位。
管程:定义了一个数据结构和在这个数据结构上的能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据。
进程通信方式
信号:使用信号处理器实现同步和互斥
信号量:使用P、V操作
消息队列:进程间传送message
共享内存:
互斥器mutex:进程之间的互斥
临界区critical section:线程之间的互斥
短作业优先-最短剩余时间作业优先
死锁:两个或者两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若没有外力作用,他们将无法推进下去。
产生死锁的必要条件:
1. 互斥条件:一个资源每次只能被一个进程使用
2. 请求与保持条件:一个进程因请求资源而被阻塞时,对已获得的资源保持不放。
3. 不剥夺条件:进程已经获得的资源,在未使用完之前,不能强行剥夺。
4. 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
预防死锁可以破坏根据上面后三个条件:
2.采用资源静态分配,破坏部分分配不放条件
3.允许进程剥夺使用其他进程占有的资源
4.采用资源有序分配法,破坏环路条件
注:互斥条件不能破坏
避免死锁最有名的是银行家算法:先检查申请者对资源的最大需求量,如果系统现有的资源可以满足申请者的请求,就满足,申请者可很快完成计算,释放占有的资源,有序的避免死锁。
fork()函数,进程分为两个:父进程和子进程,id不同,继承栈和缓冲区,在有数据修改时,子进程会写自己的数据空间,if(!fork())i++;只有子进程会执行i++
进程的三种状态
就绪:进程获得除cpu以外的所有资源,只要获得cpu就能立即执行
执行:进程在处理机上执行
阻塞:正在执行的进程,由于等待某个事件发生而产生无法执行时,便放弃处理机而处于阻塞状态,引起进程阻塞的操作可以是:等待I/O完成,申请缓冲区不能满足,等待信号等。
PE文件:portable execute,可移植的执行体,是微软windows操作系统上的程序文件,可能是间接被执行,常见的是EXE\DLL\OCX\SYS\COM
进程组成:内核对象+地址空间
线程组成:内核对象+线程堆栈
内存管理
页式管理:将各进程的虚拟空间划分成若干个长度相等的页,没有外碎片,内碎片不超过页面大小,程序全部装入内存,要求有相应的硬件支持,增加了机器成本
段式管理:把程序按照内容或者过程函数关系分成段,每个段有自己的名字,可以分别编写和编译,针对不同类型的段采用不容的保护,可以段为单位共享,缺点是会产生碎片
段页式管理
**内存抖动**thrashing,一般是内存分配算法不好,内存太小或者程序的算法不佳引起的页面频繁的从内存调入调出的行为
虚拟存储器的思想是:程序、数据、堆栈的总大小可以超过无力存储器的大小,操作系统把当前使用的部分保留在内存中,而把其他未被使用的部分保留在磁盘上
缓存,有两点是必须要考虑的:
(1)缓存数据和目标数据的一致性问题。
(2)缓存的过期策略(机制)。
其中,缓存的过期策略涉及淘汰算法。常用的淘汰算法有下面几种:
(1)FIFO:First In First Out,先进先出
(2)LRU:Least Recently Used,最近最少使用
(3)LFU:Least Frequently Used,最不经常使用

995

被折叠的 条评论
为什么被折叠?



