## 操作系统基础
文章平均质量分 68
操作系统基础
-Hello_狂奔的蜗牛
Fly!!!
展开
-
什么是死锁?如何避免死锁?
什么是死锁?死锁的定义:一组互相竞争资源的线程因互相等待,导致“永久”阻塞的现象。死锁的四个条件。1.互斥条件。共享资源X和Y只能被一个线程享用。2.请求和保持条件。进程T1已经取得了共享资源X,在等待共享资源Y的时候,不释放共享资源X。3.不可抢占条件。其他进程不能抢占当前进程T1的占有的资源。4.循环等待。线程T1等待线程T2占有的资源,线程T2等待线程T1占有的资源。为何会产生死锁考虑具体问题,如果账号A转账号B100元,此时账号C也找账号A如何避免死锁?1.破坏互斥条件,资源X原创 2020-05-16 09:42:31 · 529 阅读 · 0 评论 -
原子操作的实现原理
转自:http://blog.csdn.NET/zhaoyu_android4311/article/details/84340601. 引言原子(atom)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为"不可被中断的一个或一系列操作" 。在多处理器上实现原子操作就变得有点复杂。本文让我们一起来聊一聊在Intel处理器和Ja转载 2017-08-15 13:55:50 · 217 阅读 · 0 评论 -
进程同步,进程互斥,信号量机制,管程机制
进程同步,进程互斥,信号量机制,管程机制进程同步的引入:进程互斥:信号量机制整型信号量:记录型信号量:AND型信号量:信号量集:管程机制进程同步的引入:OS引入进程以后,可以是系统中的多道程序并发执行,可以有效改善资源利用率,显著提高系统的吞吐量,但是另一方面使得系统变得很复杂,进程同步机制,就是为了在多道程序中,保证多个进程有条不紊的进行。进程同步:是对多个相关进程在执行次序上进行协调,使并发执行的进程之间能够按照一定的规则(时序)共享系统的资源,并且能很好的合作,从而是程序的执行的具有可再线性。原创 2021-04-15 10:25:45 · 454 阅读 · 0 评论 -
操作系统系统结构,系统调用,内核态,操作系统抽象
操作系统操作系统的主要结构:主要分为三部分:中央处理器CPU,I/O桥以及I/O等外围设备,存储器图片来源:《深入理解计算机系统》什么是用户态和内核态?通俗的说,大部分应用程序执行,都是在用户态下的,特权级别是比较低的,当需要使用系统资源的时候,一般通过系统调用或者中断,从用户态切换到内核态。操作系统的保护机制,通过内存页表操作等机制,保证进程间的地址空间不会互相冲突,一个进程的操作不会修改另一个进程的地址空间中的数据。在内核态下,CPU可执行任何指令,在用户态下CPU只能执行非特权指令。当C原创 2021-03-31 10:31:53 · 337 阅读 · 0 评论 -
区分进程和线程
^-^ Three Big Problem: 一:什么是进程? 二:什么是线程? 三:进程和线程的区别?(笔记)_() 一: 1.对于进程的定义,从不同的角度可以有不同的定义。传统OS中的进程定义为:”进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位”。 2.但是为什么要有进程呢???原因是为了使程序能够在并发执行和可以对其加以描述和控制。 简单原创 2017-03-14 01:37:22 · 357 阅读 · 0 评论 -
进程中的信号量机制
1.整型信号量 所谓整型信号,就是和一般整型量有点不同的,初始化不同,还有这个仅仅只能通过两个标准的原子操作wait(s),signal(s)来访问. wait(s)和signal(s)一直被称为P,V操作.wait(S){ while(S <= 0) S--;}signal(S){ S++;}这两个是原子操作,在执行的时候不可中断,也就是说当一个进程在修改某个信号原创 2017-03-17 19:57:11 · 1075 阅读 · 0 评论 -
利用记录型信号量机制: wait(s), signal(s)解决进程同步问题
wait(s) 等价与P操作, signal(s)等价于V操作生产者-消费者问题int in = 0, out = 0;item buffer[n];semaphore mutex = 1, empty = n, full = 0;void procuder() { do { procuder an item nextp; ... wait(empty)原创 2017-06-20 00:58:35 · 27653 阅读 · 0 评论