返回万师傅首页
目前已经累计为用户解决43233个问题
共为您找到1024条" 办公用品办公家具 "相关问题

答:机要文件是指标有“机密”密级的文件、简报、讲话材料,各种资料、报表、刊物,以文字、符号、图形、声、像等形式含有国家重要秘密、泄露会使国家的安全和利益遭受严重的损害的载体  国家秘密的密级分为“绝密”、“机密”、“秘密”三级。“绝密”是最重要的国家秘密,泄密会使国家的安全和利益遭受特别严重的损害;  “机密”是重要的国家秘密,泄露会使国家的安全和利益遭受严重的损害;“秘密”是一般的国家秘密,泄露会使国家的安全和利益遭受损害。重要程度依次减轻,但都属于绝对不可泄漏的。  纸质文件要注意防潮、防虫、防火等等。但在信息化的当代,机要文件更多的是以电子媒介方式存储的。因此保管人员必须具备优秀的信息素质,有能力应付来自互联网或者内部的数据入侵。做好保密工作。由于机要文件都有一定的保密年限(特殊情况下除外) 或者遇到战乱、迁移、国家安全需要等。就不得不考虑文件的处理问题:纸质文件是在监管人员的监视下 由内部人员 用碎纸、焚烧或化学腐蚀方法销毁。电子化文件则由专业的粉碎软件粉碎(国际一般通用美国CIA执行标准)。使用的是完全不可逆的粉碎算法。或者在强磁强电压下使存储介质完全被格式化,达到销毁效果。  “收文办理”包括签收、登记、审核、拟办、批办、承办、催办等七个程序。

2019-07-01

1

人回答

答:操作系统的作用与功能 :操作系统是用户与计算机硬件之间的接口,操作系统是对计算机硬件系统的第一次扩充,用户通过操作系统来使用计算机系统。换句话来说,操作系统紧靠着计算机硬件并在其基础上提供了许多新的设施和能力,从而使得用户能够方便、可靠、安全、高效地操纵计算机硬件和运行自己的程序。例如,改造各种硬件设施,使之更容易使用;提供原语或系统调用,扩展机器的指令系统;而这些功能到目前为止还难于由硬件直接实现。操作系统还合理组织计算机的工作流程,协调各个部件有效工作,为用户提供一个良好的运行环境。经过操作系统改造和扩充过的计算机不但功能更强,使用也更为方便,用户可以直接调用操作系统提供的许多功能,而无需了解许多软硬件使用细节。操作系统可以提供虚拟计算机(Virtual Machine)。许多年以前,人们就认识到必须找到某种方法把硬件的复杂性与用户隔离开来,经过不断的探索和研究,目前采用的方法是在计算机裸机上加上一层又一层的软件来组成整个计算机系统,同时,为用户提供一个容易理解和便于程序设计的接口。在操作系统中,类似地把硬件细节隐藏并把它与用户隔离开来的情况处处可见,例如:I/O管理软件、文件管理软件、窗口软件向用户提供了一个越来越方便的使用I/O功能的方法。由此可见,每当在计算机上复盖一层软件,提供了一种抽象,系统的功能便增加一点,使用就更加方便一点,用户可用的运行环境就更加好一点。所以,当计算机上复盖了操作系统后,便为用户提供了一台功能显著增强,使用更加方便,效率明显提高的机器。操作系统还是计算机系统的资源管理者。在计算机系统中,能分配给用户使用的各种硬件和软件设施总称为资源。资源包括两大类:硬件资源和信息资源。其中,硬件资源分为处理器、存储器、I/O设备等,I/O设备又分为输入型设备、输出型设备和存储型设备;信息资源则分为程序和数据等。操作系统的重要任务之一是有序地管理计算机中的硬件、软件资源,跟踪资源使用状况,满足用户对资源的需求,协调各程序对资源的使用冲突,为用户提供简单、有效的资源使用方法,最大限度地实现各类资源的共享,提高资源利用率,从而使得计算机系统的效率有很大提高。资源管理是操作系统的一项主要任务,而控制程序执行、扩充及其功能、屏蔽使用细节、方便用户使用、组织合理工作流程、改善人机界面等等都可以从资源管理的角度去理解。下面就从资源管理的观点来看操作系统具有的几个主要功能。1、处理机管理处理器管理的第一项工作是处理中断事件,硬件只能发现中断事件,捕捉它并产生中断信号,但不能进行处理。配置了操作系统,就能对中断事件进行处理。处理器管理的第二项工作是处理器调度。在单用户单任务的情况下,处理器仅为一个用户的一个任务所独占,处理器管理的工作十分简单。但在多道程序或多用户的情况下,组织多个作业或任务执行时,就要解决处理器的调度、分配和回收等问题。近年来设计出各种各样的多处理器系统,处理器管理就更加复杂。为了实现处理器管理的功能,操作系统引入了进程(process)的概念,处理器的分配和执行都是以进程为基本单位;随着并行处理技术的发展,为了进一步提高系统并行性,使并发执行单位的粒度变细,操作系统又引入了线程(Thread)的概念。对处理器的管理最总归结为对进程和线程的管理,包括:1)进程控制和管理;2)进程同步和互斥;3)进程通信;4)进程死锁;5)处理器调度,又分高级调度,中级调度,低级调度等;6)线程控制和管理。正是由于操作系统对处理器的管理策略不同,其提供的作业处理方式也就不同,例如,批处理方式、分时处理方式、实时处理方式等等。从而,呈现在用户面前,成为具有不同性质和不同功能的操作系统。2、存储管理存储管理的主要任务是管理存储器资源,为多道程序运行提供有力的支撑。存储管理的主要功能包括:1)存储分配。存储管理将根据用户程序的需要给它分配存储器资源。2)存储共享。存储管理能地让主存中的多个用户程序实现存储资源的共享,以提高存储器的利用率。3)存储保护。存储管理要把各个用户程序相互隔离起来互不干扰,更不允许用户程序访问操作系统的程序和数据,从而保护用户程序存放在存储器中的信息不被破坏。4)存储扩充。由于物理内存容量有限,难于满足用户程序的需求,存储管理还应该能从逻辑上来扩充内存储器,为用户提供一个比内存实际容量大得多的编程空间,方便用户的编程和使用。操作系统的这一部分功能与硬件存储器的组织结构和支撑设施密切相关,操作系统设计者应根据硬件情况和用户使用需要,采用各种相应的有效存储资源分配策略和保护措施。3、设备管理设备管理的主要任务是管理各类外围设备,完成用户提出的I/O请求,加快I/O信息的传送速度,发挥I/O设备的并行性,提高I/O设备的利用率;以及提供每种设备的设备驱动程序和中断处理程序,向用户屏蔽硬件使用细节。为实现这些任务,设备管理应该具有以下功能:1)提供外围设备的控制与处理;2)提供缓冲区的管理;3)提供外围设备的分配;4)提供共享型外围设备的驱动;5)实现虚拟设备。4、文件管理上述三种管理是针对计算机硬件资源的管理。文件管理则是对系统的信息资源的管理。在现代计算机中,通常把程序和数据以文件形式存储在外存储器上,供用户使用,这样,外存储器上保存了大量文件,对这些文件如不能采取良好的管理方式,就会导致混乱或破坏,造成严重后果。为此,在操作系统中配置了文件管理,它的主要任务是对用户文件和系统文件进行有效管理,实现按名存取;实现文件的共享、保护和保密,保证文件的安全性;并提供给用户一套能方便使用文件的操作和命令。具体来说,文件管理要完成以下任务:1)提供文件逻辑组织方法;2)提供文件物理组织方法;3)提供文件的存取方法;4)提供文件的使用方法;5)实现文件的目录管理;6)实现文件的存取控制;7)实现文件的存储空间管理。5、网络与通信管理计算机网络源于计算机与通信技术的结合, 近二十年来, 从单机与终端之间的远程通信, 到今天全世界成千上万台计算机联网工作, 计算机网络的应用已十分广泛。联网操作系统至少应具有以下管理功能:1)网上资源管理功能。计算机网络的主要目的之一是共享资源,网络操作系统应实现网上资滚源的共享, 管理用户应用程序对资源的访问, 保证信息资源的安全性和一致性。2)数据通信管理功能。计算机联网后, 站点之间可以互相传送数据, 进行通信, 通过通信软件, 按照通信协议的规定, 完成网络上计算机之间的信息传送。3)网络管理功能。包括: 故障管理、安全管理、性能管理、记帐管理和配置管理。6、用户接口为了使用户能灵活、方便地使用计算机和操作系统,操作系统还提供了一组友好的用户接口,包括:1)程序接口;2)命令接口;3)图形接口。满意请采纳哈!

2019-07-01

1

人回答

答:磁盘文件管理,通俗的讲就是对磁盘上的文件进行管理。最早的磁盘有3寸和5寸软盘,这种软盘已经淘汰了。取而代之的是现在的优盘。目前我们对磁盘文件的管理主要是对硬盘和优盘的管理。既然要对磁盘上的文件进行管理,就需要工具去管理,我们长使用的磁盘文件管理软件是windows优化大师,兔子等。我使用的是兔子,建议您下个兔子使用。从计算机的体系结构看,存储器是计算机的最重要部件之一,同样,文件管理也就成了操作系统必不可少的重要作用,所以我们使用计算机的时候,也必然要有文件管理的观念。文件管理的真谛在于方便保存和迅速提取,所有的文件将通过文件夹分类被很好地组织起来,放在C盘以外你最能方便找到的地方。解决这个问题目前最理想的方法就是分类管理,从硬盘分区开始到每一个文件夹的建立,我们都要按照自己的工作和生活需要,命名不同的文件夹,建立合理的文件保存架构。此外所有的文件、文件夹,都要规范化地命名,并放入最合适的文件夹中。这样,当我们需要什么文件时,就知道到哪里去寻找。建议您要把数据文件(包括程序安装文件)放到C盘以外的盘中,这样做的原因是,我们重装系统或者用GHOST软件恢复系统备份时,一般只处理C盘,不放在C盘中的文件就不会丢失(硬盘不坏的情况下)。同时告诫大家,除了C盘,操作系统把一部分系统文件存在根目录下,其它盘,用户就不要在根目录下存放文件了,这样做的好处是,当磁盘感染磁盘寄生虫类病毒时,一般病毒文件隐藏存放在所在盘的根目录下,如果我们不在磁盘根目录上直接存放文件,病毒文件就很容易直观地被发现。删除的时候也不容易误删有用的文件。还有一点也很重要,就是很多人随意把程序文件到处安装,这点也不好,假如C盘操作系统被重装了,D盘(或者其它盘)上的依服C盘操作系统下的程序就有可能不好使了,这样D盘(或者其它盘)上的残留文件或者文件夹,就会成了垃圾文件,降低硬盘的使用效率。

2019-07-01

1

人回答

答:搜索词条文件管理更多图片(1张)文件管理是操作系统的五大职能之一,主要涉及文件的逻辑组织和物理组织,目录的结构和管理。所谓文件管理,就是操作系统中实现文件统一管理的一组软件、被管理的文件以及为实施文件管理所需要的一些数据结构的总称(是操作系统中负责存取和管理文件信息的机构)从系统角度来看,文件系统是对文件存储器的存储空间进行组织,分配和回收,负责文件的存储,检索,共享和保护。从用户角度来看,文件系统主要是实现"按名取存",文件系统的用户只要知道所需文件的文件名,就可存取文件中的信息,而无需知道这些文件究竟存放在什么地方。中文名:文件管理属性:操作系统的五大职能之一涉及:文件的逻辑组织和物理组织对象:存储器的存储空间分享简介文件管理是操作系统中一项重要的功能。其重要性在于,在现代计算机系统中,用户的程序和数据,操作系统自身的程序和数据,甚至各种输出输入设备,都是以文件形式出现的。可以说,尽管文件有多种存储介质可以使用,如硬盘、软盘,光盘,闪存,记忆棒,网盘等等,但是,它们都以文件的形式出现在操作系统的管理者和用户面前。功能① 集中存储,统一的文档共享②权限管理,可针对用户、部门及岗位进行细粒度的权限控制,控制用户的管理、浏览、阅读、编辑、下载、删除、打印、订阅等操作③ 全文索引,可以索引Office、PDF等文件内容,快速从海量资料中精准查找所需文件④ 文档审计,描述了文档生命周期全过程中的每一个动作,包括操作人、动作、日期时间等信息,通过审计跟踪您可以全局掌握系统内部所有文件的操作情况。⑤ 版本管理,文档关联多版本,避免错误版本的使用,同时支持历史版本的查看、回退与下载。⑥ 自动编号,可自由组合设计编号规则。⑦ 锁定保护,文档作者和管理权用户可将文档锁定,确保文档不被随意修改。当文档需要修改或删除时,可以解锁,保证文档的正常操作。⑧ 规则应用,系统支持为目录设定规则,指定动作、条件和操作,当动作触发符合设定的条件,系统则自动执行规则的操作。⑨ 存储加密,文件采用加密存储,防止文件扩散,全面保证企业级数据的安全性和可靠性。⑩数据备份,支持数据库备份和完整数据备份双重保护,全面保障系统内部数据安全性。用户可自行设定备份时间及位置,到达指定时刻,系统自动执行备份操作。⑪ 文档借阅,借出过程中可控制用户访问权限。被借阅用户会收到系统发送的即时消息通知。系统支持根据时间对借出的文档自动进行收回处理。⑫ 审批流程,可自定义审批流程,实现流程固化,解决企业内部流程审批混乱的问题。⑬ 统计报表,自动统计人员、部门文档使用情况和文档的存储情况随着信息化进程,文件管理越来越受到企业的重视,但是企业在进行文件管理的过程中,经常会碰到以下的问题:① 海量文件存储,文档存储分散,管理困难;② 查找缓慢,效率低下;③文件版本管理混乱;④ 文件安全缺乏保障;⑤ 文档的命名和存储无法规范化;⑥ 文件无法有效协作共享;⑦ 知识管理举步维艰等。所以文件管理逐渐成为国内外业界研究的热点。

2019-07-01

1

人回答

答:操作系统课程设计报告一. 简介Linux系统是从UNIX发展来的。UNIX是世界上最流行的操作系统之一,它是一种实时操作系统,可以运行于大型和小型计算机上的多任务系统。但由于它比较庞大,而且价格昂贵,所以不适合PC机用户使用。而Linux正好弥补了这些缺点,同时还继承了UNIX大多数优点。由于它基于PC机上运行的操作系统,并且内核源代码是公开的,使得Linux成为时下最浒的操作系统。Linux是一种适用于PC机的计算机操作系统,它适合于多种平台,是目前唯一免费的非商品化操作系统。由于有结构清晰、功能强大等特点,它很快成为许多院校学生和科研机构的研究人员学习和研究的对象。在他们的热心努力下,Linux渐渐成为一个稳定可靠、功能完善的操作系统。Linux是由UNIX发展来的,它不仅继承了UNIX操作系统的特征,而且许多方面还超过了UNIX系统。另外它还有许多UNIX所不具有的优点和特征。它的源代码是开放的,可运行于许多硬件平台 ,支持多达32种文件,支持大量的外部设备等。 Linux有广泛的用处,它可用于:?? 个人UNIX工作站。?? 终端用户和应用服务器。?? UNIX开发平台。?? 商业开发。?? 网络服务器。?? Internet服务器。?? 终端服务器、传真服务器、Modem服务器。二、Linux系统下C编程原理1. Linux系统的主要优异性能?? Linux系统是真正的爽用户。多任务、多平台操作系统。?? Linux系统提供提供具有内置安全措施的分层的文件系统,支持多达32种文件系统。?? Linux系统提供命令解释程序和编程语言。?? Linux系统提供强大的管理功能。?? Linux系统具有内枋的编程接口。?? Linux系统具有图形用户接口。?? Linux系统许多组成部分的源代码是开放的,任何人都能修改和重新发布它。?? Linux系统不公可以运行许多自由发布的应用软件,还可以运行许多商业化的应用软件。2. Linux系统的主要构成?? 存储管理在Linux中,每一个进程都有一个比实际物理空间大得多的进程虚拟空间,每个进程还保留一张页表,用于将本进程空间中的虚地址变换成物理地址,页表还对物理页的访问权限作了规定,从而达到存储保护的目的。?? 进程管理在Linux中,进程是资源分配的基本单位,所有资源都是以进程为对象进行分配的,在一个进程的生命周期中,会用到许多系统资源,Linux的设计可以准确描述进程的状态和资源的使用情况,以确保不出现某些进程过度占用系统资源而导致另一些进程无休止地等待的情况。?? 文件系统Linux最重要的特征之一就是支持多种不同的文件系统。在Linux中,一个分离的文件系统不是通过设备标志来访问,而是把它合到一个单一的目录树结构中去,通过目录访问。Linux把一个新的文件系统安装到系统单一目录树的某一目录下,则该目录下的所有内容被新安装的文件系统所覆盖,当文件系统被卸下后,安装目录下的文件将会被重新恢复。?? 进程间通信Linux提供多种进程间的通信机制,管道和信号是其中最基本两种,其他还有消息队列、信号灯及共享内存。为支持不同机器之间的进程通信,Linux还引入了机制。3. gcc编译器的使用在Linux开发环境下,gcc是进行程序开发不可或缺的编译工具,是GUN C Compile的缩写,它是在GUN系统下的标准C编译器。gcc作为Linux平台下的标准C编译器,功能强大。人们可以使用gcc编译器编译单一文件的最基本的命令,正是有了gcc编译器人们才能使用它编译C源程序。gcc的完整格式是gcc [options] [filenames] ,编译选项指定的操作对给定的文件进行编译处理。在后面可以有多个编译选项,同时进行多个编译操作。三、总体设计下面介绍Linux系统中的文件以及与文件有关的操作。在C编程环境中,与文件有关的操作主要是I/O操作,即基于文件描述符的操作。此外,还将介绍其他一些与文件有关的操作。在Linux系统中,有关的I/O操作可以分为两类。它们是基于文件描述符的I/O操作和基于流I/O的操作。它们有各自不同的特点和优势。基于文件描述符的I/O操作是通过文件描述符对一个文件执行I/O操作的。文件是一个十分重要的概念。通常保存在外存中的数据都是以文件的形式保存的。文件描述符则是用于描述被打开文件的索引值。通常情况下,都是通过文件描述符打开一个文件执行I/O操作。文件和文件系统是重要而复杂的概念。文件是有名字的一组相关信息的集合。在Linux系统中,文件的准确定义是不包含有任何其他结构的字符流。通俗的说,就是文件中的字符与字符之间除了同属于一个文件之外,不存在任何其他的关系。文件中字符的关系,是由使用文件的应用程序来建立各解释的。每一个文件都具有特定的属性。Linux系统的文件属性比较复杂,主要包括文件类型和文件权限两个方面。1.文件类型Linux下的文件可以分为5种不同的类型 。它们是普通文件、目录文件、链接文件、设备文件和管道文件。(1)、普通文件 普通文件也称正规文件,是最常见的一类文件,也是最常使用到的一类文件。其特点是不包含有文件系统的结构信息。通常所接触到的文件,包括图形文件、数据文件、文档文件、等等都属于普通文件。这种类型的文件按其内部结构又可细分为两个文件类型:文本文件和二进制文件。(2)、目录文件目录文件是用于存放文件名及其相关信息的文件。是内核组织文件系统的基本节点。目录文件可以包含下一级目录文件或普通文件。(3)、链接文件链接文件是一种特殊的文件。它实际上是指向一个真实存在的文件的链接。根据链接对象的不同,链接文件又可以细分为硬链接文件和符号链接文件。(4)、设备文件设备文件是Linux中最特殊的文件。正是由于它的存在,使得Linux系统可以十分方便地访问外部设备。Linux系统为外部设备提供一种标准接口,将外部设备视为一种特殊的文件。用户可以像访问普通文件一样访问外部设备。这就使Linux系统可以很方便的适应不断发展的外部设备。(5)、管道文件管道文件也是一种很特殊的文件。主要用于不同进程间的信息传递。当两个进程间需要进行数据或信息传递时,可以通过管道文件。一个进程将需传递的数据或信息写入管道的一端,另一进程则从管道的另一端取得所需的数据或信息。2.进程基本介绍 在Linux环境下,进程是一个十分重要的概念。按现在通行的认识,进程是具有一定功能的程序关于一个数据集合的一次执行过程。对一个特定程序来说,它的每一个正在运行中的副本都有自己的进程。就是说,如果用户在一个进程的一次运行尚未结束时再次启动该程序,则将有两个进程在运行这一程序。多个进程可以同时运行,各个进程之间相互隔开,除非不同进程之间需要进行数据交换,否则互不影响。一个进程的存在过程,可以分为进程的产生、进程的执行和进程的结束3个步骤。当一个程序被启动时,就产生一个新的进程。进程在系统内核的管理下得到执行。当某个进程执行完毕后,该进程就消亡了。Linux系统支持多个进程同时进行。所谓同时,其实是Linux系统在各个进程之间调度,轮流是每个进程占用CPU 的一个时间片。由于每个时间片和宏观的时间相比很小,而每个进程可以频繁的得到时间片,于是就使用户看到了多个进程“同时”运行的情况。在每个进程属性的安全信息里都设有一个优先级,系统根据它来决定各个进程从CPU获得的时间片的大小。用户在执行一个程序以完成一定的功能时,为了提高程序执行的效率,可以把一个程序设计成由若干个部分组成,由若干个部分组成,由若干个进程同时执行。这就是所谓并发程序的概念。此外,不同进程之间可能会需要相互合作,即进程通信和进程同步。当然,多个进程并不需要同上时间产生并都维持到整个程序运行结束。用户可以根据需要动态地产生结束进程。也就是说,一个进程可以派生另一个进程,这就是所谓父进程和了进程的关系。每个进程都有各自的属性,其中包括了进程的详细信息。 3.库的使用代码的重用性是当代计算机编程语言中一个重要的概念,可以把编译好的目标文件模块统一放到一个库中,使得程序员可以在不同的程序中共享这些代码。在操作系统中,最终链接生成可执行文件时,如果链接的是一般的文件,则整个文件的内容都会被装入可执行文件中;如果链接的是库,则只是从库存中找到程序中用到的变量和数,将它们装入可执行文件中,那些放在库中但是没有被程序所引用的变量和数则不会被链接到最终的可执行文件。所以,使用库可以节省在大量的开发时间,在写较大的程序时,最好把程序模块放在库中。对于任何典型的操作系统命令都由简单命令、参数、输入文件名、输出文件名、I\O重定向文件名等组成。(关于以上术语的数据字典见下表)以命令 gcc –ggdb3 –o moon sun.c 为例:数据字典一:术语 说明简单命令 一个Linux长命令可以有多个像gcc,more等这样的纯命令组成。其中每个纯命令如gcc,more就是这里说的简单命令参数 范例命令中的-g,-o就是参数,它们是命令的扩展,可以根据用户的不用需要提供相应的不同服务输入文件名 范例命令中的sun.c就是输入文件名,它相当于一个源文件,在文件的连接和复制的命令中也常常用到这样的文件输出文件名 范例命令中的moon就是输出文件名,它相当与一个目标文件,在文件的连接和复制的命令中也常常用到这样的文件I\O重定向文件名 在Linux系统中所有的设备都被看作文件进行管理,I\O文件(设备)作为输出的目标时是可以根据用户的需要进行调整的,I\O重定向文件名就是用来指定I\O文件(设备)名的模块说明:模块名称 功能说明总控模块main() 该模块调用其他模块实现命令解释功能,保证无论命令执行成功与否都在命令执行后返回命令提示符命令初始化模块init_command() 使用singnal函数对进程进行处理,达到初始化命令的效果命令行输入get_comln() 该模块接受用户键盘输入的所有字符并存入相应的字符数组,供其他模块使用分析简单命令个数get_simcom() 该模块对用户键盘输入的长命令进行分析并最终将长命令分割成数据字典一中的元素,存入相应的结构数组,供执行模块执行执行指令execute() 对各种的数据字典一中的元素进行最后的处理,完成区分前后台程序,封锁、开启键盘等功能分析简单命令get_simarg() 对简单命令进行分割,为执行模块提供最直接的信息得到下一个标志符get_word() 该过程用来记录输入文件名、输出文件名、I\O重定向并存入相应的结构数组查看字符串是否匹配check() 用来区分长命令中各个数据字典一中的元素的标准,为分割长命令提供参考信息执行简单命令run_com() 该模块与操作系统底层联系,使用系统调用完成各个简单命令的最终执行程序初始化init_once() 对程序中用到的所有变量和数据结构进行初始化模块图:四.详细设计/*执行输入命令的文件execute.c*/execute(int j){ int m,fd,fds[2]; /*fd 文件描述符号*/ if(infile[0]!=’0’) /*如果命令指定了输入文件则打开输入文件*/ cmdlin[0].infd=open(infile,O_RDONLY);if(outfile[0]!=’\0’) /*如果命令指定了输出文件则打开相应的输出文件*/if(append= =FLASE) cmdlin[j-1].outfd=open(outfile,O_WRONLYIO_CREATIO_TRUNC,0666);/*本句意思:一个已只读方式打开某指定文件的函数,如果该文件不存在*//*则创建此文件,如果该文件存在则将文件长度截至0*/elsecmdlin[j-1].outfd=open(outfile,O_WRONLYIO_CREATIO_APPEND,0666);/*对前台进程和后台进程进行不同的处理*/if(background)/*当一个进程结束时系统将产生一个SIGCHIOD信号通知其父进程*/ signal(SIGCHLD,SIG_IGN); else signal(SIGCHLD,SIG_DFL);/*循环执行每个简单命令*/for(m=0;m<j;++m) { /*对管道进行操作*/ if(m<j-1) { pipe(fds);/*调用pipe函数创建了一个管道*/ cmdlin[m+1].infd=fds[0]; cmdlin[m].outfd=fds[1]; } /*执行一条简单命令*/ run_com(&cmdlin[m]);/*调用run_com函数执行一条简单命令*/ /*关闭该命令的输入*/ if(fd=cmdlin[m].infd) close(fd); /*关闭该命令的输出*/ if ((fd=cmdlin[m].outfd)!=1) close(fd); }/*如果不是后台命令,等待直到最后一条简单命令执行完毕*/if(background==FALSE) while(wait(NULL)!=lastpid);}/*执行简单命令*/run_com(struct cmd *ptr ) { int k,pid; /* pid是进程标志符,用于指定所等待的进程*/ if (pid=fork( ) ) /*要创建一个进程最基本的系统调用是fork,系统调用fork用于派生一个进程,此进程与*//*当前进程相同*/ /*父进程*/{ if (background= =TRUE) printf(“%d\n”,pid); /*如果是后台命令,打印出进程标识*/ lastpid=pid; /*记录最后一个简单命令的进程标志*/} else { /*如果是后台进程要关闭键盘输入*/ if(ptr->infd= =0&&background= =TRUE)/* O_RDONLY 在设备文件中有一个极其特殊的文件/dev/null 所有放入这一设备*/*的数据都将不在存在,可以将它看成是删除操作*/ ptr->infd=open(“/dev/null, O_RDONLY); /*对输入进行重定向*/ if (ptr->infd!=0) { close(0);/*dup是复制文件描述符,也就是说新得到的文件描述符和原来的文件描述符将*//*共同指向一个打开的文件*/ dup(ptr->infd); }/dev/null /*对输入进行重定向*/ if(ptr->outfd!=1) { close(1); dup(ptr->outfd); } /*前台进程可以接受键盘输入的中断和退出信号*/ if(background= =FALSE) { /*信号都有自己特定的名字,都以SIG开头*/ singnal(SIGINT,SIG_DFL); /*SIG_DFL表示调用系统定义的缺省处理*/ singnal(SIGQUIT,SIG_DFL); }/*关闭其他文件描述符,使得除了标准输入标准输出和错误输出两处设置的管道和I/O重定向*/ for(k=3; k>OPEN_MAX; ++k) close(k); /*下面代码执行一条简单命令*//*进程控制execvp函数可装入并运行称为子进程的其他的可执行文件称为父进程的*//*execvp函数调用成功时,子进程便覆盖父进程*/ execvp(ptr->av[0],ptr->av); exit(1); }}五、测试即使是最优秀的程序员也不可避免在编程时出现一些这样那样的错误。所有的程序在写好以后,都要经过测试,在调试过程中发现并改正程序中的错误。Gdb就是Linux下的一个功能强大的C程序的调试器,它能在程序运行时观察程序的内部结构和内存的使用情况。我们的测试就是通过gdb进行的。测试计划:监视程序中变量的变化设置断点,使程序在指定的代码行上暂停执行,便于观察。单步执行代码;分析崩溃程序产生册core文件。六、自我评价:通过本次课程设计,我更加深刻的理解了大型软件(比如操作系统)结构的复杂和精巧。以及自己在软件编程中的巨大差距。在本次课程实践中我的收获有三点:第一, 明确了大型程序在构架和整体布局上是何其严格和规整。第二, 第二明确了多个模块在互相调用中程序的复杂程度以及算法设计的失误在实际编码中带来的巨大麻烦。第三, 在本次编写程序的过程中深切的感受到了“团队精神”在软件开发中的重要作用,以及协调工作的重要性和高效性。 总之, 在这次课程设计中,我觉得自己得到了很大的进步,非常感谢老师为我们提供的这次机会。你看看吧 希望你能用的上!!

2019-07-01

1

人回答

  • 热门服务
  • 推荐问答
  • 友情链接
个人
下单