操作系统课程设计
Fitz1318
安全运维工程师,加油!...
展开
-
Linux进程终止简单实例
在Linux系统中,进程通过执行系统调用exit()来终止自己。exit()系统调用实例#include #include int main(){ printf("this is a exit system call!\n"); exit(0); printf("this sentence never be displayed!\n"); return原创 2017-03-02 14:05:12 · 663 阅读 · 0 评论 -
有名管道的通信
有名管道的使用方式与无名管道不同。有名管道可被任何知道其名字的进程打开和使用。为了使用有名管道,进程要先建立它,并与他的一端相连。创建有名管道的进程叫做服务器进程,存取管道的其他进程叫做客户进程。通信双方必须首先创建有名管道后,才能打开管道进行读写。当文件不再需要时,要显示删除。进程间使用有名管道实现通信时,必须有三次同步。第一次是打开同步。当一个进程以读方式打开有名管道时,若已有写者打开原创 2017-03-25 17:31:04 · 1253 阅读 · 0 评论 -
以命令行为参数的管道通信
命令格式#include #include #include FILE popen(const char cmdstring,const char type);int pclose(FILE *fp);cmdstring是shell要求的一个完整的命令行参数和选项。type指出管道访问方式:读(r)或写(w).若管道的type为r,那么管道的输入端与命令行cmdstri原创 2017-03-25 16:41:50 · 928 阅读 · 0 评论 -
无名管道的通信
通过使用管道实现两个或多个进程之间的通信。所谓管道,就是将一个进程的标准输出与另一个进程的标准输入联系在一起,进行通信的一种方法。同组进程之间可用无名管道任意通信,而不同组进程之间可通古共有名管道进行通信。使用无名管道pipe(),进行父子进程之间的通信。#include #include #include #include #include int pipe(int原创 2017-03-25 15:40:21 · 931 阅读 · 0 评论 -
信号量机制
在UNIX系统V中,一个或多个信号量构成一个信号量集合。使用信号量机制用来实现进程之间的同步和互斥,允许并发进程一次对一组信号量进行相同或不同的操作。每个P\V操作不限于减一或加一,而是可以加减任何整数,在进程终止时,系统可根据需要自动消除所有被进程操作过的信号量的影响。关于信号量机制的数据结构、操作函数等基础知识请自行Google.下面给出一个信号量的使用实例功能:用于进程互斥共享文件的原创 2017-04-08 17:24:16 · 1018 阅读 · 0 评论 -
消息缓冲机制
消息缓冲是UNIX系统进程之间进行大量数据交换的机制之一。消息缓冲是基于消息队列的。发送进程将消息挂入接收进程的消息队列,接收进程从消息队列中接收消息。消息是指具有类型和数量的一个数据。消息分共有和私有的,如果消息为私有的,只能被创建消息队列的进程和其子进程访问;如果是公有的,可以被系统中知道消息队列名的所有进程访问。消息可以按类型访问,因此,不必按序访问。关于这方面的好多知识,我也不是特别了解,原创 2017-04-08 16:54:57 · 12894 阅读 · 4 评论 -
给进程指定一个新的运行程序的函数exec()
一个进程调用exec()函数来运行一个新程序。之后该进程的代码段、数据段和堆栈段就被新程序的所代替。新程序从自己的main()函数开始执行。一个简单的exec()调用的例子#include #include #include #include #include char *env_list[] = {"USER = kate","PATH = /tmp",NULL};i原创 2017-03-02 13:51:28 · 1753 阅读 · 0 评论 -
进程创建函数之fork()和vfork()
用vfork()函数创建进程时,语句调用序列如下#include #include pid_t vfork(void)返回值:正确返回时与fork()返回值一样,返回子进程标识,否则返回-1.用vfork()函数创建进程时,通常用exec()函数紧跟其后,以便为新创建进程指派另一个可执行程序。用vfork()创建的新进程并不完全复制父进程的数据区。vfork()调用后,子进程先运行,父原创 2017-02-26 23:17:25 · 1054 阅读 · 0 评论 -
父子进程同步
当一个进程结束时,产生一个终止状态字,然后系统和新发一个SIGCHILD信号通知父进程。因为子进程结束是异步与父进程的,故父进程结束之前,要同步等待子进程终止。这是系统通过调用wait或waitpid来实现的。当父进程通过调用wait或waitpid同步等待子进程结束时,可能有以下几种情况:①如果子进程还未结束,父进程阻塞等待②如果子进程已经结束,其终止状态字SIGCHIL原创 2017-03-02 14:17:12 · 3964 阅读 · 0 评论 -
共享主存段机制
共享主存段为进程提供了直接通过主存进行通信的有效手段,不像消息缓冲机制那样需要系统备份提供缓冲,也不像pipe机制那样需要实现尽力一个特殊文件,而是由通信双方直接访问某些共享虚拟存储空间。在系统V中,系统管理一组共享主存段控制块。通信进程在使用共享主存段以前,首先提出申请,系统为之分配存储空间并返回共享主存段标志号。一个共享段建立后,进程把它附加到自己的虚拟存储空间中。一个进程可以附加多个共享主存原创 2017-06-03 15:33:05 · 939 阅读 · 0 评论