linux系统调用
文章平均质量分 83
北方南方
阿里云PolarDB数据库研发部门,有兴趣的小伙伴可以私信我~
展开
-
fork()之父子进程页表权限的设置
1 fork()系统调用fork()系统调用用来生成子进程,而现有Linux系统运行在写时拷贝的机制下,于是fork()函数在为子进程建立内核中各种管理结构的时候,并没有将真实的物理资源分配给子进程,而只是将父进程的物理资源共享给子进程,比如:fork()函数会将父进程的物理内存共享给子进程,即将父进程多级页表的内容复制到子进程新建立的多级页表中。然而在这种机制下,对于父进程中那些原本可读可写...原创 2018-07-05 15:02:57 · 3869 阅读 · 0 评论 -
malloc()函数有始有终
1 malloc()malloc()函数是申请一块堆区内存的常用函数,简单应用如下:#include<stdio.h>#include<stdlib.h>int main(int argc, char *argv[]){ char *test = (char *)malloc(100); te原创 2018-07-05 19:43:10 · 2753 阅读 · 0 评论 -
linux线程栈与进程栈
1 线程使用方法pthread_create用于创建一个线程,pthread_join用于等待线程执行完毕,简单应用如下:#include<stdio.h>#include<pthread.h>#include&原创 2018-07-07 17:09:00 · 3668 阅读 · 0 评论 -
linux系统编程之signal信号处理程序
1 信号处理程序1.1 概述信号,软中断信号,用来通知进程发生了某些事件,是一种软件层面上对中断机制的一种模拟。信号本身是一段非常小的信息,一般都只是一个整数。信号的目的有两个:(1)通知进程一个特定的事件发生了;(2)让进程执行一个信号处理函数。 使用kill -l查看系统支持的信号类型如下:其中,1-31是定期信号,32-64是实时信号。两者的区别在于:内核不支持定期信号的...原创 2018-07-01 19:04:50 · 5214 阅读 · 0 评论 -
qemu多线程技术的实现
1 qemy_mutex_* qemu_mutex_init –> pthread_mutex_init、qemu_mutex_destroy –> pthread_mutex_destroy、qemu_mutex_lock –> pthread_mutex_lock(如果锁被占据,则阻塞当前线程)、qemu_mutex_trylock –> pthread_mute...原创 2018-08-03 11:00:08 · 6100 阅读 · 0 评论 -
QEMU是如何以后台进程运行的?
当使用libvirt启动QEMU后,QEMU进程便成为后台进程在运行,刚刚分析了QEMU启动的代码,将其转换为daemon进程的过程简单解释如下(QEMU-2.3.0):1 概述 QEMU在被libvirt启动的时候,可以传入一些参数来设置QEMU进程的运行状态,主要参数有:-runas指定以某个用户的权限运行虚拟机、-chroot改变当前QEMU的工作根目录、-daemoniz...原创 2018-08-23 00:17:34 · 6190 阅读 · 0 评论