操作系统---进程

内存中的进程:


进程中断时(如时间片到期),保存当前进程状态

运用的是PCB数据结构保存进程上下文:



****进程调度:

1、非抢占式(批处理系统)------------------------>>调度标准是:先来先服务;最短作业优先

2、抢占式(交互系统)----->>调度标准:1、公平(合理分配CPU)2、响应时间短(用户输入到执行完成的时间短)3、吞吐量大(单位时间完成的任务数量多)   这三个标准是互相矛盾的

所以抢占式系统就有以下几种调度策略:

1、轮转(时间片)

2、优先级(动态优先级,等待时间增长,不断提升的优先级)

3、多级队列反馈


<--进程同步-->

生产者和消费者问题(打印机问题)(共享变量不一致的问题):

伪代码如下:



产生问题的核心:

1、调度的不可控  2、counter++,counter--;不是原子操作   ------->>>P.counter!=C.counter;

<--解决线程同步问题-->

临界区:当进程进入临界区的时候不允许其他进程进行操作

实现临界区问题:

1、关闭中断,在进程进入临界区的时候,关闭中断,使得该CPU只执行当前进程。问题:如果多核的情况下要关闭多个中断;并且在进程执行完毕后要重新打开中断,不然系统会崩溃,所以这个关闭中断操作不能交给应用程序权限;所以这只是理论存解决的方案。

2、硬件指令实现锁


3、信号量(DJstra)


注意:<--在实现同步的过程中,没拿到锁的进程不能忙等,要把没有锁的进程放入等待队列中,当有锁空了之后再从队列中取出-->

伪代码如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值