Nachos-线程具体实现

图片说明

图片说明

图片说明

图片说明

图片说明

进程之间有通信的要求,进程之间的关系表现在同步和互斥两方面,其实互斥可以看作是同步的一种特殊情况。

图片说明

图片说明

锁机制,信号量,条件变量
实际上锁在面对互斥问题比较好用,面对复杂的同步问题基本无效;而信号量和条件变量面对同步问题非常好用,类似于读者写者问题,生产者消费者问题,哲学家进餐问题。

图片说明

正文程序段可以被多个进程共享,数据段和堆栈段一般不会被别的进程获取到信息。

图片说明

线程和进程的区别是什么呢?线程只有自己的运行线索(PC指针和栈空间)而没有自己单独的地址空间,而进程有单独的地址空间,进程是资源分配的最小单位,而线程是CPU调度的最小单位,进程之间的通信有很多进程通信机制,而线程之间的通信因为同一个进程内的线程公用一个地址空间,所以线程间通信很简单。

同族线程之间的数据共享不需要通过内核来完成了,而进程之间的数据通信是要通过内核完成的。

线程为主体的思想可以用在内核程序中,把每一个系统调用看作来自用户的服务请求,内核派生成一个新的线程去处理这个请求,这就是微内核的思想。

图片说明

更多细节的内容可以查看我的FTP。

全部评论

相关推荐

03-04 15:02
已编辑
南京大学 Java
3.3 一面岗位: 后台开发部门: 腾讯云场景题偏多,没问项目,没手撕,时长半小时1. 自我介绍2. Java基础:- Treemap & HashMap区别- ArrayList, 添加n个数(n较大),会发生什么(应该是想问ArrayList的扩容机制)- 考虑扩容的情况下这个过程的复杂度多少(说明复杂度计算思路即可,不需要给出具体的复杂度)3. 并发:- 项目里怎么用多线程的(一开始答了具体场景,不过面试官想听的是线程池,Synchronized这些...)- volatile & synchronized- 这里还问了一个,不过忘了...- 假设项目里用了很多synchronized拖慢了系统效率,让你重构项目,你怎么设计? (真不会,回了一个参考乐观锁的设计用版本号之类的,然后这个话题就过了)4. JVM- JVM垃圾回收,怎么判断对象有没有被引用? (可达性分析)- GC Root有哪些- 遇到OOM怎么排查5. 场景- 设计一个数据结构,用于在搜索框中搜索人名(不知道是不是这个意思,答了字典树这个结构)- 使用字典树存储的话空间复杂度是多少(同前面,给出计算思路就行,不需要具体的值)- 问了下简历上项目的背景,项目的具体内容没问- 项目里的难点/印象深刻的点,咋解决的- 针对上一点提了一个发散性的场景题(让你设计个xxx,你的思路)然后反问,无手撕。---春招第一面,被场景设计问题拷打麻了,就当练习了,不敢奢望能过,后续随缘了3.4更新,已挂
_追梦旅人_:大家考虑深圳睿联不,我们正在春招,可在我主页看岗位,感兴趣可直接投递~
查看15道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务