A:程序查询方式:检查条件及处理需要占用CPU时间;
B:中断模式:检查条件不占用CPU时间,满足条件进入中断处理子程序,此时需占用CPU;
C:DMA方式:由DMA控制器完成I/O与内存之间的请求,CPU占用仅发生在DMA请求阶段和结束阶段;
D:无条件存取方式:在处理过程中仍然需要占用CPU。
同一进程内的线程共享:
1、代码段 2、数据段 3、打开文件列表
线程私有:
1、线程id 2、寄存器 3、工作栈
文件管理系统管理的对象如下:
1.、文件,在文件系统中有着各种不同类型的文件,它们都作为文件管理的直接对象。
2.、目录,为了方便用户对文件的存取和检索,在文件系统中必须配置目录,在目录的每个目录项中,必须含有文件名、对文件属性的说明,以及该文件所在的物理地址(或指针)。对目录的组织和管理,是方便用户和提高对文件存取速度的关键。
3.、磁盘(磁带)存储空间,文件和目录必定占用存储空间,对这部分空间的有效管理,不仅能提高外存的利用率,而且能提高对文件的存取速度。
多线程可以提高CPU利用率,不能提高内存利用率。
"抢占式多任务处理(preemptive multitasking)",各个进程都分配到一定的时间段可以执行。时间段到期后,内核会从进程回收控制权,让"下一个进程(由调度器决定)"运行。被抢占进程的运行环境,即所有CPU寄存器、页表、程序计数器都会保存起来,因此上一个进程的执行结果不会丢失。在之前被抢占的进程恢复执行时,其进程环境可以完全恢复。时间片的长度会根据进程优先级而变化。
静态区(static): 存放(初始化的)全局变量、静态变量和(未初始化的)全局变量和静态变量;
栈(操作系统):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈, 栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放,由编译器自动申请和释放
堆(操作系统): 存放动态分配内存函数申请的变量,一般由程序员分配释放, 若程序员不手动释放,可能会引发内存泄漏,程序结束时可能由OS回收,分配方式倒是类似于链表。 堆则是存放在二级缓存中,所以调用这些对象的速度要相对来得低一些
进程被唤醒之后进入就绪状态,就可以等待自己时间片的到来,当时间片到了之后就变成了执行状态才能分到cpu 。
内存就绪就是活动就绪,辅存就绪是静止就绪,静止就绪需要转换到活动就绪,才能在时间片到来而进入到运行状态。