linux 下的系统调用

2020-11-16  本文已影响0人  simok

一、主要有以下模块

-进程管理
-内存管理
-文件管理
-信号处理
-进程通信
-网络通信

一、进程管理

1.父进程通过fork函数调用创建一个子进程并拷贝父进程的数据结构
2.子进程可以通过execve函数执行新的程序, 如果是父进程调用fork函数则返回子进程pid,子进程调用fork()则返回0
3.父进程通过waitpid函数传入子进程的pid可以知道子进程是否执行完成

二、内存管理

进程的内存空间: 在操作系统中,每个进程都有自己独立的内存空间互相之间不干扰

进程内存空间都放些什么呢?
1.代码段: 即程序
2.数据区:全局变量 常量
3.栈:函数(函数里面的局部变量 随便函数执行释放) 与指针
4.堆:动态分配内存
5.堆里面分配内存的系统调用,brk, mmap 分配的内存数量比较小的时候,使用 brk,会和原来的堆的数据连在一起,反之mmap 会重新划分一块区域

只有真的写入数据的时候,发现没有对应物理内存,才会触发一个中断,现分配物理内存。

三、文件管理

创建 删除 读取 写
系统调用 open create delete read write lseek

四、信号处理

五、进程之间的通信

消息队列 共享内存 信号量

六、网络通信

上一篇 下一篇

猜你喜欢

热点阅读