操作系统
虚心学习进步
主学C++、linux、网络编程
展开
-
Linux进程通信-信号量
一、什么是信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个进/线程在访问它,也就是说信号量是用来调协进程对共享资源的访问的。信号量是一个特殊的变量,程序对其访问都是原子操作,且只允许对它进行等待(即P(信号变量))和释放(即V(信号变量))信息操作。最简单的信号量是只能取0和1的变量,这也是信号量最常见的一...转载 2018-08-29 13:51:43 · 111 阅读 · 0 评论 -
Linux多线程间同步与互斥---条件变量(Conditoin Variable)
同步和互斥:前言:线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点也是重点。 linux下提供了多种方式来处理线程同步,最常用的是互斥量(mutex)、条件变量(Conditoin Variable)和信号量(Semaphore)。如果能看到这里,相信都对这三种方式有所了解,在此,我只阐述条件变量这一块最难理解的地方,如果有误区,还请大神不吝指教:条件变量:...转载 2018-08-29 10:41:25 · 189 阅读 · 0 评论 -
linux进程和线程之间通信方法和同步方法总结
进程和线程之间的通信方法一:进程之间的通信方法1.消息队列2.共享内存3.管道:分为匿名管道用在父子进程之间通信,命名管道用于父子进程或不相关进程之间通信;参考:linux进程间通信-----管道总结实例4.父子进程也可以通过文件描述符通信,共同打开同一个文件;二:线程之间的通信方法1.全局数据,全局变量,全局数据结构2.创建线程的时候通过参数arg主线程传递数据给...转载 2018-08-29 09:52:53 · 434 阅读 · 0 评论 -
Linux多线程及同步
Linux下实现多线程都是用pthread。UNIX以及类UNIX系统中,线程是以轻量级进程的形式实现。在linux内核中,每个线程也拥有独立的task_struct结构,因此,每个线程也拥有自己独立的pid。一个进程中可以包含多个同时运行的线程,这些线程共享了同一个虚拟内存地址空间和系统资源。 1 创建进程时,直接使用系统调用:clone(),fork()也是调用clone()。 2 创...转载 2018-08-29 09:17:36 · 126 阅读 · 0 评论 -
Linux下进程、线程同步几种方法
https://blog.csdn.net/okiwilldoit/article/details/78487507在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。所谓进程同步(线程同步同理),主要是解决临界资源互斥访问的问题。如多个进程访问同一片共享内存,这片共享内存必须互斥使用。一.进程同步在Linux下,进程同步的解决方式主要有四种: 1. 信号量 ...转载 2018-08-29 09:10:21 · 249 阅读 · 0 评论 -
进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别2013-08-10 15:45:31这两天看进程的同步与通信,看了几本书上的介绍,也从网上搜了很多资料,越看越迷惑,被这几个问题搞得很纠结。进程同步与互斥的区别? 进程的同步方式有哪些? 进程的通信方式有哪些? 进程同步与通信的区别是什么? 线程的同步/通信与进程的同步/通信有区别吗?在好多教材上(包括国内与国外的...转载 2018-08-28 16:16:25 · 258 阅读 · 0 评论 -
操作系统知识点
1.操作系统的特征: (1)并发:多个事件同一时间间隔发生 (2)共享:分互斥共享方式(即对临街资源的访问) 同时访问方式:多个进程同时访问的资源,如磁盘、重入码写的文 件 (3)虚拟:通过某种技术把一个物理实体变成若干逻辑上的对应物,如虚拟处理器、虚拟内存等 (4)异步性:进程以不可预知的速度向前推进 并发、共享是最基...原创 2018-08-24 14:32:30 · 371 阅读 · 0 评论 -
处理机和处理器的区别
处理机处理机是计算机系统中存储程序和数据,并按照程序规定的步骤执行指令的部件。程序是描述处理机完成某项任务的指令序列。指令则是处理机能直接解释、执行的信息单位。处理机包括中央处理器(cpu),主存储器,输入-输出接口。处理机加接外围设备就构成完整的计算机系统cpu中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核...转载 2018-07-08 20:48:06 · 4806 阅读 · 0 评论 -
互斥量和信号量的区别
互斥量和信号量的区别1. 互斥量用于线程的互斥,信号量用于线程的同步。这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是...转载 2018-04-25 23:36:11 · 25105 阅读 · 2 评论 -
临界资源和临界区
1.临界资源 临界资源是一次仅允许一个进程使用的共享资源。各进程采取互斥的方式,实现共享的资源称作临界资源。属于临界资源的硬件有,打印机,磁带机等;软件有消息队列,变量,数组,缓冲区等。诸进程间采取互斥方式,实现对这种资源的共享。2.临界区: 每个进程中访问临界资源的那段代码称为临界区(criticalsection),每次只允许一个进程进入临界区,进入后,不允许其他进程进入。不论是硬件临界资...转载 2018-04-25 21:28:19 · 1219 阅读 · 0 评论 -
linux c 线程间同步(通信)的几种方法--互斥锁,条件变量,信号量,读写锁
Linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量、信号量和读写锁。 下面是思维导图: 一、互斥锁(mutex) 锁机制是同一时刻只允许一个线程执行一个关键部分的代码。1 . 初始化锁int pthread_mutex_init(pthread_mutex_t *mutex,const pthread_mutex_attr_t *mutexattr); ...转载 2018-08-29 20:01:30 · 210 阅读 · 0 评论