进程与线程

多任务:

单核Vs多核

并发:

并行:

进程:运行中的程序

特点:

优缺:

进程状态:

进程的控制结构

pcb

包含了进程什么信息:

如何组织信息:

进程的控制

创建进程:

终止进程:

阻塞进程:

唤醒进程:

回收进程资源

为什么要回收资源:

僵尸与孤儿:

进程的上下文切换

切换内容:

切换的场景:

进程的调度

调度程序:

阻塞运行态进程后,选择一个进程运行,称为调度程序

调度时机:

调度原则:

原则一:不然cpu空闲

原则二:提高吞吐率

原则三:避免周转时间长

原则四:进程等待时间

原则五:响应时间

调度算法

先来先服务:

短时间优先:

高响应比优先:

时间片轮转:

高优先级优先:

多级反馈:

进程的通信

管道,消息队列,共享内存,信号量,信号,socket。

进程的通信

管道

如何创建,原理:

缺点:

消息队列

原理:

缺点:

存在用户态到内核态的数据拷贝

共享内存

原理:

解决了:

缺点:

信号量

原理:

解决什么

解决过程

信号

作用:

用法:

socket

函数原型

TCP与UDP在socket的过程:(引出网络编程)

线程:是进程中执行的一条流程

特点:

优缺:

有了进程为什么用线程:

线程的共享资源问题

线程的同步

线程的创建

函数原型:

线程的状态

进程与线程的比较

单位,资源,状态,时间

为什么线程开销小

时间:

空间:

cpu的上下文切换

作用:

进程的上下文切换

切换内容:

切换的场景:

线程的上下文切换

同一进程?

线程的三种实现方式

用户线程

是什么:

优缺点:

内核线程

是什么:

优缺点:

轻量级线程是什么。

线程同步的具体实现

为什么会发生竞争?

例如:

互斥的概念

为什么有互斥,原因?

同步概念

在关键点相互等待,互通消息,称线程同步:临界区的入口与结尾

同步与互斥都通过锁来实现

忙等待锁:自旋锁

死循环实现

无等待锁

通过创建线程锁等待队列,先进先出

信号量

线程的同步互斥访问如何实现?

生成者消费者问题:

哲学家就餐问题:

读者与写者问题:

锁:不可避免的死锁问题

概念:

同时满足四个条件:

互斥条件

持有并等待条件

不可剥夺条件

环路等待条件

简单模拟死锁问题

工具定位死锁

linux:pstack<pid>:显示跟踪栈(函数的调用)

gdb

避免死锁:破坏其中一个条件。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值