现代操作系统

来源:互联网 发布:stc单片机烧录 编辑:程序博客网 时间:2024/04/27 19:19

今天是开学第一天,所有的课都感觉是在讲之后的教学计划,所以我就抽空看了些现代操作系统,明天要用而且跨专业选了,还是预习下把


操作系统的基本配置

          CPU MEMORY DISK IO BUS BOOTSTRAP

}


USER&KERNEL的切换  TRAP  用来陷入内核之后进行系统调用 

速度较慢,占用资源大


进程之间的三态:运行-阻塞-就绪  但并非都可以相互  其中阻塞至运行无 就绪到阻塞无  

就按逻辑上理解把 需要进行状态的转换  比如阻塞到就绪到运行就是行得通的




进程控制块

{
1.程序ID(PID、进程句柄):它是唯一的,一个进程都必须对应一个PID。PID一般是整形数字
2.特征信息:一般分系统进程、用户进程、或者内核进程等
3.进程状态:运行、就绪、阻塞,表示进程现的运行情况
4.优先级:表示获得CPU控制权的优先级大小
5.通信信息:进程之间的通信关系的反映,由于操作系统会提供通信信道
6.现场保护区:保护阻塞的进程用
7.资源需求、分配控制信息
8.进程实体信息,指明程序路径和名称,进程数据在物理内存还是在交换分区(分页)中
9.其他信息:工作单位,工作区,文件信息等

}

进程切换是用来读取进程的状态信息等


Thread 线程

多线程单进程& 经典线程模型 POSIX标准


Thread Table 

{

user level  //高效 易扩展 速度快 相较于内核陷入模块,高效,开销小

                   // 单线程模拟多线程?

kernel level //处理阻塞应用时比较好用,频繁系统调用(调度程序激活机制)改进速度

                 //开销大因为切换线程时   用户-内核-用户 的切换 且放弃了cache的应用

}


single-thread to multi-thread 

p64


IPC后续在看,今天刚看到这之前


参考:

http://blog.csdn.net/forgotaboutgirl/article/details/6775015



*有个概念没懂  memory mapping ?

*同一进程调用两次,但输出的数据的地址是相同的


*PCB(Process Control Block) ,  TLS ,Thread Table  的区别?  


TLS全称为Thread Local Storage,是Windows为解决一个进程中多个线程同时访问全局变量而提供的机制。TLS可以简单地由操作系统代为完成整个互斥过程,也可以由用户自己编写控制信号量的函数。当进程中的线程访问预先制定的内存空间时,操作系统会调用系统默认的或用户自定义的信号量函数,保证数据的完整性与正确性。

用来解决单线程模拟多线程是全局变量的冲突?


0 0