
操作系统
文章平均质量分 65
ai_yue
这个作者很懒,什么都没留下…
展开
-
操作系统 自旋锁+信号量+互斥量+临界区+死锁的区别
自旋锁(SpinLock)自旋锁是专为防止多处理器并发而引入的一种锁。如果是单核处理器,则自旋锁定义为空操作,因为简单的关闭中断即可实现互斥。 自旋锁最多只能被一个线程持有,如果一个线程试图请求一个已被争用(已被另一个线程持有)的自旋锁,那么等待自旋锁的线程将会反复检查自旋锁是否释放,不会进入睡眠状态,一直处于忙等待状态(busy-waiting),直到获取该自旋锁才能继续执行未完成的...转载 2018-09-20 19:44:41 · 989 阅读 · 0 评论 -
linux(ubuntu)中vim/vi的常见用法
vi/vim常用命令 vim其实就是vi的升级版,vi里的所有命令vim里都可以用,一般使用来说几乎没什么差别。 注:本篇文章区分大小写! vi / vim三级模式的关系: 命令行模式 任何时候,不管用户处于何种模式,只要按一下ESC键,即可使Vi进入命令模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。在该模式下...转载 2018-10-30 20:34:29 · 10117 阅读 · 0 评论 -
经典进程同步问题--生产者消费者问题
问题描述: 一群生产者进程在生产产品,并将这些产品提供给消费者去消费。为了使生产者进程与消费者进程能够并发进行,在两者之间设置一个具有n个缓冲区的缓冲池,生产者进程将产品放入一个缓冲区中;消费者可以从一个缓冲区取走产品去消费。尽管所有的生产者进程和消费者进程是以异方式运行,但它们必须保持同步:当一个缓冲区为空时不允许消费者去取走产品,当一个缓冲区满时也不允许生产者去存入产品。...转载 2018-11-13 20:59:13 · 2472 阅读 · 1 评论 -
经典进程同步问题--哲学家进餐问题
五个哲学家公用一张圆桌, 分别坐在周围的五张桌子上, 在圆桌上有五个碗和五只筷子交叉排列, 它们的生活方式是交替的进行思考和进餐. 哲学家进行思考时不用筷子, 饥饿时取一只他两边的任意一只筷子(默认取左边的筷子, 没有时取右边的, 都没有时就取不了), 当他有两只筷子时就能进餐. 进餐后, 放下筷子继续思考.若只有一只筷子, 不放弃该筷子并等待拥有另一只筷子时再进餐.用一个信号量表示一只筷子,...转载 2018-11-13 21:18:26 · 1046 阅读 · 0 评论 -
经典进程同步问题--读者写者问题
问题描述有读者和写者两组并发进程,共享一个文件,当两个或以上的读进程同时访问共享数据时不会产生副作用,但若某个写进程和其他进程(读进程或写进程)同时访问共享数据时则可能导致数据不一致的错误。因此要求:①允许多个读者可以同时对文件执行读操作;②只允许一个写者往文件中写信息;③任一写者在完成写操作之前不允许其他读者或写者工作;④写者执行写操作前,应让已有的读者和写者全部退出。 问题分析1) 关系分...转载 2018-11-13 21:39:21 · 2501 阅读 · 1 评论