1、前言 当前计算机都是多核的,linux2.6提供了进程绑定cpu功能,将进程指定到某个core上执行,方便管理进程。linux提供了sysconf系统调用可以获取系统的cpu个数和可用的cpu个数。2、sysconf 函数 man一下sysconf,解释这个函数......
2023-10-13 08:19 阅读 阅读全文一、介绍从UNIX系统继承过来的信号(SIGHUP~SIGSYS,前32个)都是不可靠信号,不支持排队(多次发送相同的信号,进程可能只能收到一次,可能会丢失)。SIGRTMIN 至 SIGRTMAX 的信号支持排队(发多少次, 就可以收到多少次, 不会丢失),故......
2023-10-10 01:13 阅读 阅读全文Linux的fork()系统调用,就是以父进程为模版创建子进程,是Linux系统的进程管理机制的核心API之一,另一个是调度器函数schedule(),它的用户态API就是之前说自旋锁时提到的sched_yield()。如果是“21天学写操作系统”,那么最先要实......
2023-10-13 08:43 阅读 阅读全文【getpid/getppid系统调用】功能描述:getpid返回当前进程标识,getppid返回父进程标识。用法:#include #includepid_t getpid(void);pid_t getppid(void);例子:#include #include #include int main(void){pid_t pid;printf("Before fork ...\n");swi......
2023-10-13 08:34 阅读 阅读全文【uname系统调用】功能描述:获取当前内核名称和其它信息。用法:#includeextern int uname (struct utsname *__name) __THROW;参数:__name:指向存放系统信息的缓冲区,原型如下/* Structure describing the system......
2023-10-13 08:21 阅读 阅读全文(1) 相关函数说明函数原型int access(constchar * pathname,int mode);相关函数stat,open,chmod,chown,setuid,setgid表头文件#include<unistd.h>函数说明①参数pathname——文件名称②参数mode——要判断的访问权限。有几种情况组合:R_..._......
2023-10-13 07:34 阅读 阅读全文进程之间通信:一个进程可以向另一个进程发送信号,因此信号可以很好的用于进程之间的通信。通过信号输出的信息,使多个进程可以协作完成一个任务。Linux环境使用kill函数向进程或进程组发送信号。 KILL功能描述:用于向......
2023-10-13 08:01 阅读 阅读全文文章浏览阅读1.4w次。Linux 进程的系统调用子进程创建fork() 创建子进程。fork()后会有两个并发进程执行,子进程复制了父进程的数据段,包括全局变量。父进程返回子进程的PID, 子进程返回0。 头文件:stdio.h vfork() 子进程与父......
2023-11-13 14:24 阅读 阅读全文【 mount/umount系统调用】 功能描述:mount挂上文件系统,umount执行相反的操作。用法: #include <sys/mount.h>int mount(const char *source, const char *target, const char *filesystemtype, unsigned long mountflags, const void *data);int umount(const char *target..._lin......
2023-10-13 08:23 阅读 阅读全文什么是空洞文件?文件空洞:文件系统的空洞(hole)可以不占用磁盘空间 在UNIX文件操作中,文件位移量可以大于文件的当前长度,在这种情况下,对该文件的下一次写将延长该文件,并在文件中构成一个空洞。位于文件中但没有写......
2023-10-10 01:11 阅读 阅读全文