
操作系统
smile_sambery
这个作者很懒,什么都没留下…
展开
-
linux操作系统之信号
(1)信号的概念 信号的特点:简单,不能携带大量信息,满足某种特定条件才触发。 信号的机制;“软中断”,通过软件方式实现,具有很强的延时性。每个进程收到的信号,都由内核负责发送,内核处理。 信号的产生:1)按键产生(ctrl+c,ctrl+z,ctrl+\) ...原创 2018-08-30 22:20:16 · 820 阅读 · 0 评论 -
linux操作系统之进程组及会话
(1)进程组(作业):代表一个或多个进程的集合。 1)父进程创建子进程时,默认子进程与父进程属于同一进程组,进程组id==第一个进程id(组长id,父进程id)。 2)使用kill -SIGKILL -进程组id(负数) 将整个进程组杀死。 3)只有进程组中还有进程存在,进程组就一直存在,与组长进程是否终止无关。 ...原创 2018-09-03 10:06:45 · 661 阅读 · 0 评论 -
linux操作系统之信号量、互斥量在进程间的同步、文件锁
(1)信号量:进化版的互斥量 多个线程间对某个对象的部分数据进行共享,使用互斥锁是没有办法实现的,只能将整个数据对象锁住。这样虽然达到了多线程操作数据共享的目的,却导致线程并发性下降。 信号量:相对折中的一个处理方式,既能保证同步,数据不混乱,又能提高线程开发。(2)信号量相关函数 sem_t类型,用来定义信号量。虽然是结构体,使用...原创 2018-09-05 16:27:41 · 5654 阅读 · 1 评论 -
linux操作系统之条件变量
(1)条件变量 条件变量本身不是锁,但它可以造成线程阻塞,通常与互斥锁配合使用。(2)条件锁相关函数 pthread_cond_t类型,用于定义条件变量 1)初始化一个条件变量:pthread_cond_init int pthread_cond_init(pthread_co...原创 2018-09-05 09:27:30 · 1343 阅读 · 0 评论 -
linux操作系统之读写锁
(1)读写锁:只有一把锁,但是有两种状态(读,写) 1)读写锁的三种状态:读锁,写锁,不加锁 2)读写锁特性(12字):写锁优先级高,写独占,读共享 1>写模式加锁时,解锁前,所有对该线程加锁的线程都会被阻塞。 2>读模式加锁时,如果线程是读加锁则...原创 2018-09-05 08:37:53 · 3715 阅读 · 3 评论 -
linux操作系统之线程同步及互斥量
(1)线程同步 1)线程同步:指一个线程发出某一个功能运行时,在运行还没有结束的时候,该调用不返回。同时其它线程为保证数据的一致性,不能调用该功能。 2)多个控制流共同操作一个共享资源的时候,都需要同步。 3)数据混乱的原因:1》资源共享 2》调度随机 3》线程间缺乏必要的同步机制。 ...原创 2018-09-04 21:59:29 · 394 阅读 · 0 评论 -
linux操作系统之终端
(1)终端分类: Alt+Ctrl+F1~F6 字符终端 pts :伪终端 Alt+Ctrl+F7 图形终端 SSH,Telnet 网路终端(2)终端的启动流程 每一个进程都可以通过一个特殊的设备文件/dev/tty访问它的控制终端,具体访问流程为: ...原创 2018-09-01 20:31:52 · 975 阅读 · 0 评论 -
LInux操作系统之SIGCHLD信号
(1)SIGCHLD产生条件 1)子进程终止的时候 2)子进程接收到SIGSTOP信号停止时 3)子进程处于停止状态,接受到SIGCONT后唤醒(2)借助SIGCHLD使用waitpid信号实现父进程对子进程的回收 (3)SIGCHLD信号注意问题 1)子进程继承父进程的信号屏蔽字和信号...原创 2018-09-01 19:58:07 · 1598 阅读 · 0 评论 -
linux操作系统之全局异步IO及可重入/不可重入函数
(1)全局变量异步I/O实现父子进程交替数数 1)信号捕捉函数 2)main函数实现信号交替 3)程序实现 1》创建子进程,父进程等待1s,等待子进...原创 2018-09-01 19:24:07 · 448 阅读 · 0 评论 -
linux操作系统之竞态条件(时序竞态)
(1)时序竞态:前后两次运行同一个程序,出现的结果不同。(2)pause函数:使用该函数会造成进程主动挂起,并等待信号唤醒,调用该系统调用的进程会处于阻塞状态(主动放弃CPU) 函数原型:int pause(void); 返回值为-1,并设置errno为EINTR 使用pause和alarm实现sleep函数;(3)时序问题分析...原创 2018-08-31 22:31:19 · 966 阅读 · 0 评论 -
linux操作系统信号捕捉函数之sigaction用法小结
(1)sigaction函数:注册一个信号捕捉函数(不参与捕捉信号,信号由内核捕捉),并修改原来的信号处理动作(2)函数原型及头文件 头文件:#include<signal.h> 函数原型:int sigaction(int signum,const struct sigaction*act,struct sigaction*o...原创 2018-08-31 10:30:18 · 886 阅读 · 0 评论 -
linux操作系统之线程
(1)线程(LWP) 可使用命令查看指定线程的LWP号: ps -Lf pid 1)light weigh process(轻量级进程),本质上仍然是进程 进程:独立的地址空间,拥有PCB,最小分配资源单位,内存分配资源以进程为标准。 线程:没有独立的地址空间(共享),...原创 2018-09-03 12:23:40 · 337 阅读 · 0 评论