![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 73
@杂货铺
这个作者很懒,什么都没留下…
展开
-
OrangeS一个操作系统的实现--保护模式
OrangeS:一个操作系统的实现,第三章保护模式学习笔记原创 2022-07-15 16:08:48 · 241 阅读 · 0 评论 -
Win10安装Qt
https://blog.csdn.net/weixin_30455661/article/details/98467896原创 2022-01-15 22:55:31 · 235 阅读 · 0 评论 -
Linux进程之-信号
1、信号的基本概念信号特点: 简单,不能携带大量信息,满足特定条件发生信号的机制: 进程B发送给进程A,内核产生信号,内核处理。信号的产生:按键产生,例如ctrl+c,ctrl+z,ctrl+\调用函数 kill、raise、abort定时器 alarm、setitimer命令产生 kill硬件异常、段错误、浮点型错误、总线错误、SIGPIPE信号的状态:产生递达,信号达到并且处理完未决,信号被阻塞了信号的默认处理方式:忽略执行默认动作捕获信号的4要素: (可通过 man原创 2021-04-18 10:02:32 · 181 阅读 · 0 评论 -
Linux进程之-进程间通信
目录1、pipe进行父子进程间通信2、pipe进行兄弟进程间通信3、fifo进行无血缘关系的进程间通信4、mmap函数:如何使用、创建匿名映射区、进行有血缘关系的进程间通信和进行无血缘关系的进程间通信概念IPC: InterProcess Communication 进程间通信,通过内核提供的缓冲区进行数据交换的机制。IPC通信的方式:pipe 管道 --最简单 fifo 有名管道 mmap 文件映射共享IO --速度最快 本地socket --最稳定 信号 --携带原创 2021-04-11 22:54:18 · 288 阅读 · 0 评论 -
Linux进程之-小结(fork-多进程-getpid/getppid-僵尸进程-wait函数)
1、fork函数创建一个子进程。pid_t fork(void) 失败返回-1,成功返回值:(1)父进程返回子进程的ID(非0);(2)子进程返回0。pid_t类型表示进程ID,但为了表示-1,它是有符号整形。(0不是有效进程ID,int最小为1)注意:fork返回值不是返回两个值,而是fork后,fork函数变为两个,父子进程各自返回一个。2、多进程一次fork函数调用可创建一个子进程,创建n个子进程可以用for循环,但需注意创建完子进程后退出,不然子进程会伴随循环继续创建子子进程。.原创 2021-04-09 23:33:43 · 232 阅读 · 0 评论 -
Linux进程之-孤儿进程、僵尸进程、进程回收wait与waitpid
目录:1.了解进程的相关概念2.掌握fork/getpid/getppid函数使用3.掌握ps/kill命令使用4.掌握execl/execlp函数的使用5.什么是孤儿进程、僵尸进程6.掌握wait函数使用7.掌握waitpid函数的使用概念孤儿进程:父进程死了,子进程被init进程领养僵尸进程:子进程死了,父进程没有回收子进程的资源(PCB)存放于内核中,变成僵尸进程。注意:僵尸进程是不能使用kill命令清除掉的,因为kill命令只是用来终止进程的,而僵尸进程已经终止。如何回收原创 2021-04-07 23:04:12 · 225 阅读 · 0 评论 -
Linux进程之-进程共享/execl函数族
目录:1.了解进程的相关概念2.掌握fork/getpid/getppid函数使用3.掌握ps/kill命令使用4.掌握execl/execlp函数的使用5.什么是孤儿进程、僵尸进程6.掌握wait函数使用7.掌握waitpid函数的使用进程共享进程表示如下图所示,一个a.out程序也即是一个进程。父子进程之间在fork之后的异同:相同点:全局变量、data、.text、栈、堆、环境变量、用户ID、宿主目录、进程工作目录、信号处理方式…等。不同之处:父子进程 1.进程id、2.f原创 2021-03-31 22:56:02 · 153 阅读 · 2 评论 -
Linux进程之-fork创建单进程\多进程
目录:1.了解进程的相关概念2.掌握fork/getpid/getppid函数使用3.掌握ps/kill命令使用4.掌握execl/execlp函数的使用5.什么是孤儿进程、僵尸进程6.掌握wait函数使用7.掌握waitpid函数的使用1、fork函数作用:创建一个子进程pid_t fork(void); 失败返回-1,成功返回:(1)父进程返回子进程的ID(非负);(2)子进程返回0。pid_t类型表示进程ID,但为了表示-1,它是有符号整型。注意返回值.原创 2021-03-28 22:54:52 · 164 阅读 · 1 评论 -
Linux进程之-概念
dup2(oldfd, newfd)--> newfd指向oldfd的文件,dup用于复制。1.了解进程的相关概念2.掌握fork/getpid/getppid函数使用3.掌握ps/kill命令使用4.掌握execl/execlp函数的使用5.什么是孤儿进程、僵尸进程6.掌握wait函数使用7.掌握waitpid函数的使用1、进程相关概念程序和进程:程序是指编译好的二进制文件,在磁盘上,不占用系统资源{CPU、内存、打开的文件、设备、锁....};进程,是一个抽象的原创 2021-03-28 22:29:53 · 91 阅读 · 1 评论 -
Linux线程之-文件锁fcntl()函数
1.概念系统中只允许一个该名字的进程存在(进程间互斥),借助fcntl函数来实现锁机制。操作文件的进程没有获得锁时,可以打开,但无法执行read、write操作。2.fcntl函数#include <unistd.h>#include <fcntl.h>int fcntl(int fd, int cmd, ... /* arg */ );作用:获取、设置文件访问控制属性。参数:fd,文件描述符;cmd,具体操作命令。F_SETLK(struct fl原创 2021-03-14 00:28:49 · 365 阅读 · 0 评论 -
Linux之线程-信号量sem_*
1. 概念信号量可理解为进化版的互斥锁/量,允许多个线程访问共享资源。由于互斥锁的力度比较大,如果希望在多个线程间对某一对象的部分数据进行共享,使用互斥锁是没有办法实现的,只能将整个数据对象锁住。这样虽然达到了多线程操作共享数据时保证数据正确的目的,却无形中导致线程的并发性下降。线程从并行执行变成了串行执行,与直接使用单进程无异。信号量,是相对折中的一种处理方式,既能保证同步,数据不混乱,又能提高线程并发。2.主要应用函数sem_init函数 sem_destroy函数 sem_wait函数原创 2021-03-13 14:38:48 · 855 阅读 · 1 评论 -
Linux之线程条件变量cond
概念:条件变量不是锁,要和互斥量组合使用。条件变量就是生产者“生产”完成,消费者才能“使用”,如果没有“产品”,消费者就会被条件变量cond阻塞等待生产者“生产”。(生产者与消费者模型)函数:1.超时等待int pthread_cond_timedwait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex, const struct timespec *restrict abs原创 2021-03-12 23:48:21 · 557 阅读 · 2 评论 -
Linux之线程-读写锁pthread_rwlock_t
**主要内容:(1)互斥量及如何使用(2)什么是死锁,如何解决(3)什么是读写锁,如何使用**(4)条件变量实现的生产消费者模型(5)信号量实现的生产消费者模型3.读写锁特点:读共享,写独占,写优先级高。读写锁仍然是一把锁,有不同的状态:未加锁、读锁和写锁。场景:适合读的线程较多的情况线程A加写锁成功,线程B请求读锁。--线程B阻塞 线程A持有读锁,线程B请求写锁。--线程B阻塞 线程A持有读锁,线程B请求读锁。--B加锁成功 线程A持有读锁,然后线程B请求读锁,然后线程C请求原创 2021-03-03 23:34:32 · 502 阅读 · 2 评论 -
Linux之线程-互斥量mutex与死锁
**主要内容:(1)互斥量及如何使用(2)什么是死锁,如何解决(3)什么是读写锁,如何使用**(4)条件变量实现的生产消费者模型(5)信号量实现的生产消费者模型**线程同步**协调步骤,顺序执行。解决同步的问题:加锁!数据混乱的原因:- 资源共享(独享资源则不会);- 随机调度(意味着数据访问会出现竞争);- 线程间缺乏必要的同步机制。(解决该点最为可行,因此需要用到互斥量)**1.mutex互斥量**两个线程访问同一块共享资源,如果不协调顺序,容易造成数据混乱。解决方...原创 2021-02-28 23:19:12 · 308 阅读 · 0 评论 -
Linux之线程概念(pthread)
线程(pthread)Linux中线程知识的一些学习笔记。原创 2021-02-20 09:20:58 · 276 阅读 · 0 评论