实验目的:熟悉Linux中进程创建函数的应用。实验内容:程序1:用fork()函数完成子进程的创建。父进程中输出word, 子进程中输出hello运行休眠函数实现子进程先执行 1 #include 2 #include 3 #include 4 #include 5 int main() 6 { 7...
分类:
系统相关 时间:
2015-08-31 14:56:01
阅读次数:
192
一、阻塞io操作和非阻塞io操作
对于阻塞io操作:当cpu得不到需要的文件数据的时候,则将自己挂起,直到有了数据,才能执行下面的操作。
非阻塞io: 当cpu得不到文件时候,其一直在轮询cpu,直达得到数据。
二、文件描述符
对于内核而言,所有打开的文件,都用文件描述符来引用。所有的文件操作都是由内核态完成的,当一个用户的进程创建一个文件时候,内核会给其返回一个文件描述符。
...
分类:
其他好文 时间:
2015-08-29 21:50:15
阅读次数:
219
Russell-X-Shanso工厂模式、抽象工厂模式、建造者模式,均为创建类模式,其共有的设计思路主要在于根据情况理清并封装创建流程(创建进程、创建gen_server、组建record或maps等复合数据结构等)、解耦、定向扩展等等。(注:由于这三个创建类模型解决的问题近似,面向对象语言中的解决...
分类:
其他好文 时间:
2015-08-27 02:12:42
阅读次数:
189
文件的访问模式:1、规范模式:2、同步模式:3、内存映射模式:4、直接I\O模式5、异步模式:内存映射模式:1、共享型:在线性区页上的任何写操作都会修改磁盘上的文件;而且这种修改对映射了同一文件的所有进程都是可见的。2、私有型:进程创建只读文件的时候用到,效率更高。对它对写操作不会改变磁盘文件,也对...
分类:
系统相关 时间:
2015-08-21 13:17:56
阅读次数:
168
假设在UNIX操作系统环境下执行以下程序:
main()
{
printf("Hello World\n");
fork();
printf("Hello World\n");
}
若程序正常运行,子进程创建成功,那么,屏幕上得到输出的有
A) 1个Hello World
B) 2个Hello World
C) 3个Hello World
D) 4个Hello...
分类:
其他好文 时间:
2015-08-18 01:22:22
阅读次数:
165
一、进程相关操作与编程对应函数1.进程创建:两种方式来实现。①fork:创建一个子进程,父子进程共享一份代码程序,但是各有一份独立的数据,为了效率和保持数据的独立采用写时复制技术(COW)。运行无优先级。#include pid_t fork(void);返回值:成功——子进程(0),父进程(子进程...
分类:
系统相关 时间:
2015-08-15 19:50:36
阅读次数:
207
在之前的文章Windows 回调监控 总结了关于CreateProcessNotify,CreateProcessNotifyEx和LoadImageNotify一些用法,之后产生了一个思路,既然在进程创建的时候加载.exe文件会执行我们的回调函数,那么如果在我们回调函数之中对内存中的.exe文件的...
在Unix/Linux系统下进程创建时需要进行如下系统调用:fork/exec
fork()把一个进程复制成二个进程:parent (old PID), child (new PID)
exec()用新程序来重写当前进程:PID没有改变
接下来就重点学习这两个系统调用:
当我们fork() 创建一个继承的子进程将会发生如下事情:复制父进程的所有变量和内存,复...
分类:
系统相关 时间:
2015-08-13 18:15:05
阅读次数:
210
进程和线程的区别是什么? 进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。线程又叫做轻量级进程。 创建线程有几种不同的方式?你喜欢哪一种?为什么? 有三种方式可以用来创建线程: 继承Thread类 实现Runnable接口 应用程序可以使用Executor框架来创建线...
分类:
编程语言 时间:
2015-08-13 09:59:05
阅读次数:
173
进程和线程的区别是什么?进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。线程又叫做轻量级进程。创建线程有几种不同的方式?你喜欢哪一种?为什么?有三种方式可以用来创建线程:继承Thread类实现Runnable接口应用程序可以使用Executor框架来创建线程池实现Ru...
分类:
编程语言 时间:
2015-08-11 12:05:40
阅读次数:
179