syscall
文章平均质量分 87
Morphad
这个作者很懒,什么都没留下…
展开
-
linux系统调用poll
I/O复用技术是:把我们关注的描述符组成一个描述符表(通常不止一个描述符),调用I/O复用函数(select/poll/epoll),当描述符表中有可进行非阻塞I/O操作的描述符时,复用函数返回;否则阻塞复用函数,直到描述符表中有可进行非阻塞I/O操作的描述符出现时,才唤醒进程继续执行复用函数;当复用函数正常返回时,就可以知道哪些描述符可进行非阻塞I/O操作。I/O复用的描述符通常包括:终端/原创 2013-03-09 11:01:20 · 4443 阅读 · 0 评论 -
linux系统调用select
I/O复用技术是:把我们关注的描述符组成一个描述符表(通常不止一个描述符),调用I/O复用函数(select/poll/epoll),当描述符表中有可进行非阻塞I/O操作的描述符时,复用函数返回;否则阻塞复用函数,直到描述符表中有可进行非阻塞I/O操作的描述符出现时,才唤醒进程继续执行复用函数;当复用函数正常返回时,就可以知道哪些描述符可进行非阻塞I/O操作。I/O复用的描述符通常包括:终端/原创 2013-04-20 15:42:44 · 1283 阅读 · 0 评论 -
linux系统调用execve
exec系列函数主要实现装入新的可执行文件或脚本镜像,并执行;调用后不再返回,而是跳转到新镜像的入口去执行。exec在linux上均是对execve系统调用的封装,除了下述内容外,进程其它内容均保持不变:1.将设置了处理函数的信号handler,重置为默认SIG_DFL2.内存映射,mmap3.SysV共享内存,shmat4.POSIX共享内存,shm_open5.POSI原创 2013-05-23 19:50:40 · 9188 阅读 · 0 评论 -
linux 系统调用fork vfork clone
fork:通过fork创建新进程vfork:主要用于马上执行exec的情况,因为马上就exec装入新的程序,所以可以去掉fork中分配新的地址空间等操作,进而加速进程创建clone:功能更强,参数更多;主要用于创建线程/父子进程资源共享等,可以通过设置相应的参数实现fork、vfork的功能 I.系统调用i.系统调用arch/x86/kernel/syscall_table原创 2013-06-29 12:02:18 · 2853 阅读 · 0 评论 -
linux 系统调用pipe
linux的管道是在pipefs上实现的,pipefs实现见linux pipe文件系统(pipefs)注: pipe会在挂载到内核上的pipefs上创建虚拟管道文件(文件对象superblock,dentry,inode,file都是内核内存中);FIFO是在物理文件系统(ext4/ext3/nfs等)中创建管道文件,物理存储中有对应的文件(如文件inode) I.原型原创 2013-07-02 18:50:21 · 4831 阅读 · 0 评论 -
linux系统调用
系统调用是作为异常处理的,同其它异常处理handler类似,主要分为三步:1、保存现场环境(保存各寄存器的值到内核堆栈中)2、调用相应的系统调用处理函数3、恢复现场环境,并由内核态切换回用户态可通过两种方式来调用system call:1、int 0x802、sysenter这里主要讨论第一种方式以x86为例:0x80软中断的handler在trap_init中原创 2013-04-21 11:22:58 · 1481 阅读 · 0 评论 -
linux 系统调用epoll_create epoll_ctl epoll_wait
epoll是Linux内核为处理大批量句柄而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。epoll主要涉及epoll_create epoll_ctl epoll_wait三个基本系统调用,及增加功能的epoll_create1,epoll_pwait epoll相对poll原创 2013-07-23 19:35:55 · 4353 阅读 · 0 评论