您的位置:首页 > 运维架构 > Linux

C_1:linux系统基础

2015-12-01 14:42 323 查看

linux进程管理

每个进程有自己独立的运行空间

进程的状态:就绪/运行状态;等待状态(中断);等待状态(不可中断);停止状态;僵死状态

进程的属性:PID(进程ID), PPID(进程父ID),PGID(进程组ID),UID(用户ID)

创建进程 : fork()=子进程复制父进程的全部(除PID);vfork()=复制部分父进程

在子进程中执行新代码: exec()

等待进程结束:wait()+waitpid()=父子进程间同步机制

推出进程:exit

进程调度策略和优先级=sched_setscheduler()

FIFO=先入先出

最短作业

最高优先级

时间片

Linux守护进程=后退运行,脱离终端

孤儿进程=父进程先退出

进程间的通信

同一主机进程间的通信

UNIX进程通信方式:a. 无名管道;b. 有名管道;c. 信号

Systm-V进程通信方式: a. 信号量;b. 消息队列; c. 共享内存

不同主机(网络)进程通信: a. RPC ; b. Socket

进程通信_无名管道: 临时的,且只可以在具有亲属关系的进程中通信

进程通信_有名管道:可否无名管道问题

进程通信_信号中断处理:软中断 <signal>

System_V=key值和ID值

消息队列

信号量(信号量表示系统可用资源的个数)

共享内存(进程间的大量数据传输)

Linux多线程

线程是进程的一个独立的控制流(pthread API)

线程和进程区别:资源共享

线程间共享:地址空间,信号处理机制,数据,I/O

线程API(POSIX)

功能线程进程
创建pthread_createfork,vfork
退出pthread_exitexit
等待pthread_joinwait,waitpid
取消/终止pthread_cancelabort
读取IDpthread_self()getpid
调度策略SCHD_FIFO等SCHD_FIFO等
通信机制信号量,信号,互斥锁,变量条件,读写锁无名管道,有名管道,信号,信息队列,信号量,共享内存
线程拥有资源

资源
程序计数器
一组寄存器
线程信号编码
局部线程变量
线程私有数据

线程的同步机制

互斥锁=以排他方式防止共享数据并发修改=二元变量,开锁和上锁

访问该资源前,申请互斥锁

若是开锁状态则申请到对象,并占有该锁,上锁状态

若是上锁状态,则处于锁定状态,默认阻塞等待

只有互斥锁进程可以开锁

变量条件=满足互斥锁的一些不足=和互斥锁配合

读写锁=多个读出,一个写入

线程与信号(线程信号掩码)

死锁

两个或者两个以上的进程之间在执行过程中,因为争夺资源而造成的一种互相等待

死锁的条件

互斥条件

请求保持

不剥夺

循环等待

远程过程调用(RPC)

sunRPC
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: