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_create | fork,vfork |
退出 | pthread_exit | exit |
等待 | pthread_join | wait,waitpid |
取消/终止 | pthread_cancel | abort |
读取ID | pthread_self() | getpid |
调度策略 | SCHD_FIFO等 | SCHD_FIFO等 |
通信机制 | 信号量,信号,互斥锁,变量条件,读写锁 | 无名管道,有名管道,信号,信息队列,信号量,共享内存 |
资源 |
---|
程序计数器 |
一组寄存器 |
栈 |
线程信号编码 |
局部线程变量 |
线程私有数据 |
线程的同步机制
互斥锁=以排他方式防止共享数据并发修改=二元变量,开锁和上锁访问该资源前,申请互斥锁
若是开锁状态则申请到对象,并占有该锁,上锁状态
若是上锁状态,则处于锁定状态,默认阻塞等待
只有互斥锁进程可以开锁
变量条件=满足互斥锁的一些不足=和互斥锁配合
读写锁=多个读出,一个写入
线程与信号(线程信号掩码)
死锁
两个或者两个以上的进程之间在执行过程中,因为争夺资源而造成的一种互相等待死锁的条件
互斥条件
请求保持
不剥夺
循环等待
远程过程调用(RPC)
sunRPC相关文章推荐
- centos7 搭建Android开发环境(eclipse,adt,sdk)
- CentOS下同步时间并写入CMOS
- linux上两个常见的网卡报错
- linux下导入、导出mysql数据库命令
- CentOS(一)----在VMware虚拟机中安装CentOS 7
- Linux运维工程师常用命令总结
- centos7编译64位hadoop 2.4.1遇到的问题,求大神帮忙!!!
- Linux Top 命令解析 比较详细
- 根据Linux 线程挂起与唤醒原理,实现Sleep的暂停与继续
- linux下安装php常见错误
- Linux命令记载
- linux 基础知识总结2
- ECS Linux系统SSH服务安全配置
- linux下core文件调试方法
- linux 基础知识总结
- linux printf不加换行显示问题
- CentOS下编译安装Node.js 5.1.0
- 编译工具链(GCC)建立
- Linux NTP配置详解 (Network Time Protocol)
- centos 7 从零开始