博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
进程和线程新增
阅读量:4687 次
发布时间:2019-06-09

本文共 1307 字,大约阅读时间需要 4 分钟。

1.  renice 改变正在运行进程的优先级。

2.  bg 把挂起的进程放到后台执行。

3.  getpid() 获得进程号  getppid() 获得父进程的进程号。

4.  WEXITSTATUS(s) 在父进程中返回子进程号。

5.  一个线程最大只有8M内存。

6.  每个线程私有的资源:线程ID(TID)   PC和相关寄存器  堆栈  errno  信号掩码和优先级  执行状态和属性

7.  -D_REENTRANT 优化线程生成可重入代码

8.  int kikk(pid_t, int sig);  int raise(int sig); raise 只允许给自己发信号。

9.  信号通信signal函数原型  typedef void (*sighandler_t)(int)  sighandler_t signal(int signum, sighandler_t handler);

10.  常用的进程通信方式:

  1)传统方式:无名管道(pipe),有名管道(fifo),信号(signal)灯

  2)System V IPC对象:共享内存(share memory),消息队列(message queue),信号灯(semaphore)

  3)BSD:套接字

11.  share memory:

  1)int shmget(key_t key, int size, int shmflg);获得共享内存

  2)char *shmat(int shmid, const void *shmaddr, int shmflag);映射到内存

  3)int shmdt(const void *shmaddr);撤销映射

  4)int shmctl(int shmid, int cmd, struct shmid_ds *buf);可以用于删除内存。

12.  打开消息队列:megget  添加消息:megsnd  读取消息:msgrcv  控制消息:msgctl

13.  信号灯的种类:

  1)POSIX 有名信号灯(线程之间)

  2)POSIX无名信号灯(基于内存)

  3)System V信号灯(IPC对象)

14.  System V 信号灯权限

  1)int semget(key_t key, int nsems, int semflg); nsems,信号灯的数目 semflg 权限:IPC_CREAT|0666

  2)int semctl(int semid,int semnum, int cmd, union semun arg) 信号控制,可以用于设置信号灯的值,此时cmd为SETVAL。

  3)int semop(int semid, struct sembuf*stops, size_t nsops)  结构体sembuf中,-1:分配资源,p操作,消费者  1:释放资源,v操作,生产者。              0:等待。

转载于:https://www.cnblogs.com/oyjngz101/p/6021264.html

你可能感兴趣的文章
PAT(B) 1014 福尔摩斯的约会(Java)
查看>>
PAT甲级题解-1123. Is It a Complete AVL Tree (30)-AVL树+满二叉树
查看>>
项目开发总结报告(GB8567——88)
查看>>
BZOJ1930: [Shoi2003]pacman 吃豆豆
查看>>
SSH加固
查看>>
端口扫描base
查看>>
iOS IM开发的一些开源、框架和教程等资料
查看>>
FansUnion:共同写博客计划终究还是“流产”了
查看>>
python 二维字典
查看>>
编译原理实验一
查看>>
Git for Android Studio 学习笔记
查看>>
pip 警告!The default format will switch to columns in the future
查看>>
Arrays类学习笔记
查看>>
实验吧之【天下武功唯快不破】
查看>>
2019-3-25多线程的同步与互斥(互斥锁、条件变量、读写锁、自旋锁、信号量)...
查看>>
win7-64 mysql的安装
查看>>
dcm4chee 修改默认(0002,0013) ImplementationVersionName
查看>>
maven3在eclipse3.4.2中创建java web项目
查看>>
发布时间 sql语句
查看>>
黑马程序员 ExecuteReader执行查询
查看>>