![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux系统编程
沙漠那点绿
博观而约取,厚积而薄发。
展开
-
七、读写锁
01. 读写锁概述当有一个线程已经持有互斥锁时,互斥锁将所有试图进入临界区的线程都阻塞住。但是考虑一种情形,当前持有互斥锁的线程只是要读访问共享资源,而同时有其它几个线程也想读取这个共享资源,但是由于互斥锁的排它性,所有其它线程都无法获取锁,也就无法读访问共享资源了,但是实际上多个线程同时读访问共享资源并不会导致问题。在对数据的读写操作中,更多的是读操作,写操作较少,例如对数据库数据的读写应...转载 2019-12-19 18:10:26 · 425 阅读 · 0 评论 -
六、互斥锁
01. 互斥锁引入为什么需要互斥锁?在多任务操作系统中,同时运行的多个任务可能都需要使用同一种资源。这个过程有点类似于,公司部门里,我在使用着打印机打印东西的同时(还没有打印完),别人刚好也在此刻使用打印机打印东西,如果不做任何处理的话,打印出来的东西肯定是错乱的。下面我们用程序模拟一下这个过程,线程一需要打印“ hello ”,线程二需要打印“ world ”,不加任何处理的话,打印出...转载 2019-12-19 17:49:48 · 288 阅读 · 0 评论 -
四、进程与线程
01. 进程和线程区别在许多经典的操作系统教科书中,总是把进程定义为程序的执行实例,它并不执行什么, 只是维护应用程序所需的各种资源,而线程则是真正的执行实体。为了让进程完成一定的工作,进程中必须至少包含一个线程。进程,直观点说,保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己的地址空间,有自己的堆,上级挂靠单位是操作系统。操作系统会以进程为单位,分配系...转载 2019-12-16 19:02:33 · 85 阅读 · 0 评论 -
三、特殊进程之孤儿进程
01. 孤儿进程概述父进程运行结束,但子进程还在运行的子进程就称为孤儿进程(Orphan Process)。孤儿进程最终会被 init 进程(进程号为 1 )所收养,并由 init 进程对它们完成状态收集工作。孤儿进程是没有父进程的进程,为避免孤儿进程退出时无法释放所占用的资源而变为僵尸进程,进程号为 1 的 init 进程将会接受这些孤儿进程,这一过程也被称为“收养”。init 进程就好像...转载 2019-12-13 16:42:04 · 311 阅读 · 0 评论 -
二、大端模式和小端模式
01. 概述大端模式(Big-endian):高位字节排放在内存的低地址端,低位字节排放在内存的高地址端,即正序排列,高尾端;小端模式(Little-endian):低位字节排放在内存的低地址端,高位字节排放在内存的高地址端,即逆序排列,低尾端;例(无论是小端模式还是大端模式。每个字节内部都是按顺序排列):大端模式:低地址 -----------------> 高地址0x...转载 2019-12-13 16:30:23 · 1588 阅读 · 0 评论 -
一、Linux文件操作
01. 文件描述符在 Linux 的世界里,一切设备皆文件。我们可以使用系统调用中 I/O 的函数(I:input,输入;O:output,输出),对文件进行相应的操作( open()、close()、write() 、read() 等)。打开现存文件或新建文件时,系统(内核)会返回一个文件描述符,文件描述符用来指定已打开的文件。这个文件描述符相当于这个已打开文件的标号,文件描述符是非负整...转载 2019-12-13 16:35:39 · 164 阅读 · 0 评论 -
一、文件I/O操作
前言:UNIX系统中绝大多数文件I/O会用到五个函数,分别是open、read、write、lseek、close。函数操作:1、open函数头文件:#include<fcntl.h>函数原型:int open(const char *path, int oflag,........)参数说明: path:一般指需要打开或者创建的文件名字 ...原创 2018-10-26 16:25:53 · 353 阅读 · 0 评论