操作系统-进程与线程笔记

来源:互联网 发布:腾讯微云同步盘mac版 编辑:程序博客网 时间:2024/06/03 20:15
进程终止条件
    1正常退出
    2出错退出
    3严重错误
    4被其他进程杀死
需要线程的理由:
1一个进程需要多个活动
2 线程的性能更好一些 更加的轻量
优点
1不需要陷阱 不需要上下文切换  允许自己定制调度算法
缺点 无法实现时钟中断  如何实现阻塞系统调用

避免进程竞争的方法:
    1 屏蔽中断
    2 锁变量(无法实现)
    3严格轮换法(并不好 一直在忙等待 浪费CPU)
    4 Peterson彼得森算法 (忙等待)
    5 TSL硬件指令
通信原语在无法进入临界区会阻塞 而不是忙等待

管程和临界区的区别在于管程中的线程可以自己放弃 让其他线程进来 临界区的线程必须执行完毕
进程之间的通信可以使用系统调用 send receive来发送接收消息

屏障是用于给进程组使用的同步方法

2.4
调度
何时进行调度
 1在创建一个新的进程以后 要决定运行父进程还是子进程
 2 在一个进程退出的时候决定调度
 3当一个进程阻塞在I/O和信号量上或者其他原因阻塞
 4发生I/O中断的时候


调度算法分类
1批处理类 重要的是 吞吐量 周转时间XPU利用率
        1先来先服务  优点:易于理解 缺点:低效 主要因为IO密集
        2最短作业有限
        3最短剩余时间优先

2交互式   (最小响应时间)
    1 轮转调度
    2 优先级调度(给每一个进程分配一个优先级 一般来说 在每次时钟中断的时候 都降低进程的优先级)
    3多级队列
    4最短进程优先(问题 如何找到最短的那个进程)
    5保证调度
    6彩票调度 
    7公平分享调度(保证各个进程分配CPU的时间相同)


3 实时

调度算法的目标
1公平 2保持系统各部分尽可能的忙碌

用户级线程和内核级线程的差别主要在性能(用户级线程性能更好)
0 0