下面是这两周里的一些课堂笔记,记录一下。

1.操作系统的一些特点,以windows为例

进程切换时间60ms,服务器120ms,高优先级15ms。

想让自己的程序更快?

提高进程的优先级,就可以缩短切换时间。

2.多线程

多线程:提高cpu利用率。

任务的类型:

  1. IO,输入输出:比如一个游戏中各种参数的表达显示,和cpu数没关系,那么进程就越多越好,越多越快。
  2. 计算型:比如游戏中各种伤害的计算,线程(注意是线程)绝对不能超过cpu数,进程数也不能多。

一些知识:

  1. c++的知名的库:boost
  2. openssl加密
  3. JavaScript
  4. 神一样的node.js服务器
  5. cpu数量越多,并发效果越好
  6. 同一个进程下的线程切换,通信,代价很小,只需要用到TCB,速度很快。
  7. 但是不同进程中的线程切换,通信,代价很大,要用到PCB+TCB,速度慢。所以进程之间能不切换就不切换。

3.考试用

信号量及其应用(每次必考,10分)

4.死锁

死锁的四个条件:

  1. 没有强行剥夺,没有JC的存在(操作系统什么的介入)
  2. 进程互斥,相互争夺资源(CPU,内存,文件,设备)
  3. 占有并等待(正在用教室,还要坚持申请隔壁的教室)
  4. 相互等待(你有的我申请,我有的你申请)

满足以上所有4个条件,才能构成死锁。

5.很多公司面试的出题范围

  1. 80%的是操作系统
  2. 10%是数据结构
  3. 10%是网络知识

发表评论

电子邮件地址不会被公开。 必填项已用*标注