Linux的内核特征
Linux操作系统的核心稳定而高效,以独占的方式执行最底层任务,保证其他程序的正常运行,是整个系统的核心,具有独特的性质。
Linux采用多级分页的存储管理模式,具体的技术特征将在后面介绍。
Linux自身使用的专用文件系统为Ext2,可以提供方便有效地文件共享及保护机制,同时,它可以通过虚拟文件系统的技术,支持包括微软系列操作系统所使用的fat16,fat32,和ntfs等文件系统在内的几十种现有的文件系统。
Linux系统具有内置的TCP/IP协议栈,可以提供各种高效的网络功能,包括基本的进程间通讯,网络文件服务等。
结构特征
Linux内核基本采用模块结构,单内核模式,这使得系统具有很高的运行效率,但系统的可扩展性及可移植性受到一定影响。为了解决这个问题,linux使用了附加模块技术。利用模块技术,可以方便的在内核中添加新的组件或卸载不在需要的内核组件,而且这种装载和卸载可以动态进行,即在系统运行过程中完成,而不需要重新启动系统。
引入动态的模块技术,可使系统内具有良好的动态可伸缩性,但是,内核模块的引入也带来了对系统性能,内存利用和系统稳定性的一些影响,可动态装卸的模块需要系统增加额外的资源来记录,管理,而装入的内核模块和其他内核部分一样,具有相同的访问权限,差得内核模块会导致系统不稳定甚至崩溃,特别是一些恶意的内核模块可能对系统安全造成极大危害。
总的来讲,linux内核基本采用模块式结构构造,同时加入动态的模块技术,在追求系统整体效率的同时,实现了内核的动态可伸缩性。这样的结构给系统移植带来一定的负面影响。
发展方向
Linux内核本身的发展方向主要是硬件支持,嵌入系统和分布式系统三个方面
进程管理
进程是操作系统中一个非常重要的概念。程序的运行时通过进程来完成的。在层次结构的操作系统中,进程不仅是系统分配资源的基本单位,而且是CPU调度的基本单位。进程管理师操作系统最重要的功能之一。
1程序的顺序执行
程序是人们要计算机完成的一些指令序列,是一个按严格次序,顺序执行的操作序列,是一个静态的概念。我们把一个具有独立功能的程序独占处理机,直到最后结束的过程称为程序的顺序执行。
2程序顺序执行时的特征
(1)顺序性。处理机的操作严格按照程序所规定的顺序执行,即只有前一个程序段完成才执行下一个程序段,上一条指令完成再去执行下一条指令。
(2)封闭性。程序是在封闭环境下运行的。程序运行时独占全机资源,资源的状态除初始状态外,只有改程序本身才能改变他。程序执行的最终结果由给定的初始条件决定,不受外界因素的影响。
(3)可再现性。顺序执行的最终结果可再现,也就是说它与执行速度及执行的时刻无关,只要输入的初始条件相同,无论何时重复执行改程序,结果都是相同的。
2.程序的并发执行及其特征
1.1并发执行的概念
程序的并发性是指多道程序在同一时间间隔内同时发生,这是为了增强计算机系统的处理能力,提高资源的利用率采取的一种同时操作技术。(并发执行应该像多线程...我的理解而已)
程序并发执行时的特征
程序的并发执行虽然提高了系统吞吐量,但也产生了下述一些与顺序执行时不同的新特征。
(现在我们一般用的是什么执行方式呢)
(1)间断性。程序在并发执行时,由于他们共享系统资源,以及为完成同一项任务而相互合作,致使这些并发执行的程序之间形成了相互制约的关系。
(2)失去封闭性。程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行失去了封闭性。这样某程序在执行时,必然受到其他程序的影响,例如,当处理机被某个程序占有时,另一程序必须等待。
(3)不可再现性。程序在并发执行时,由于失去了封闭性,也将导致其失去可再现性。
由于程序的顺序性,间断性和不可再现性,用程序作为描述其执行过程和共享资源的基本单位,即增加了操作系统设计和实现的复杂性,又无法反映操作系统应具有的程序段执行的并发性,用户随机性,以及资源共享等特征。也就是说,用程序作为描述其执行过程以及共享资源的基本单位是不合适的。这就需要一个既能描述程序的执行过程,又能用来共享资源的基本单位,这个单位被称为进程。
(如果在程序中进行类的调用,这就是并发执行么)
进程的定义与特征
进程的定义
进程是操作系统中最基本,最重要的概念之一。
(1)进程是程序的一次执行
(2)进程是可以和别的进程并发执行的计算
(3)进程就是一个程序在给定活动空间和初始条件下,在一个处理机上的执行过程
(4)进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。
(5)进程是动态的,有生命周期的活动。内核可以创建一个进程,最终将由内核终止该进程使其消亡
在linux系统下使用编辑器vi进行编辑,同时打开多个窗口,编辑多个不同名称的文件,vi编辑器是一个可执行程序,不同的文件就是不同的操作数据,而对应于这些文件同时打开的每一个编辑窗口都对应着一个进程,每一个进程都处于不同状态。
如果说程序师提供计算机操作的一组工作流程的话,进程就是具体的工作过程,按照同样的工作流程,针对不同的原料,可以同时开始多个工作过程,得到多种不同的成品。(工作流程是程序,过程是进程)
程序和进程失恋咯完全不同的概念,但又有密切的联系
(1)程序师静态的概念,本身可以作为一种软件资源长期保存,而进程是程序的一次执行过程,是动态概念
(2)进程是一个能独立运行的单位,能与其他进程并发执行。进程是作为资源申请和调度单位存在的;通常的程序不能作为一个独立运行的单位而并发执行。
(3)程序和进程不存在一一对应的关系。一个程序可由多个进程共用,一个进程在某活动中又可顺序的执行若干个程序,一个程序运行一次,便创建一个进程,那么同一个程序运行10次,就产生了10个进程。、
(4)各个进程在并发执行过程中会产生相互制约的关系,造成各自前进速度的不可预测性,而程序本身是静态的,不存在这种异步特征