随笔分类 -  操作系统

摘要:影响文件安全性的主要因素,第一是人为因素,即由于人们有意或无意的行为,而使文件系统中的数据遭到破坏或丢失;第二是系统因素,即由于系统的某部分出现异常情况,而造成对数据的破坏或丢失,特别是作为数据存储介质的磁盘,在出现故障或损坏时,会对文件系统的安全性造成影响;第三是自然因素,即存放在磁盘上的数据,随着时间的推移将可能发生溢出或逐渐消失。为了确保文件系统的安全性,可针对上述原因而采取以下措施:(1)通过存取控制机制来防止由人为因素所造成的文件不安全性。(2)通过磁盘容错技术,来防止由磁盘部分的故障所造成的文件不安全性。(见4.5.5独立磁盘冗余阵列(RAID)技术)(3)通过“后备系统”来防止由 阅读全文
posted @ 2012-11-27 22:19 我不是geek 阅读(2162) 评论(0) 推荐(0)
摘要:磁盘的逻辑组织一个物理磁盘在逻辑上可分为几个区域,分区信息存放在主引导块分区表中。分区表中保存磁盘各种分区起始和终止的磁头、柱面、扇区、总的扇区数等信息。在主引导块中有三种类型分区:主分区、扩展区和逻辑分区。主分区是常用的,加载一个操作系统所需文件安装其上,操作系统必须从主分区上引导,一个硬盘上只能有四个主分区。为了突破四个分区的限制,就要在四个分区中创建立一个扩展分区。扩展分区其实是一个逻辑盘,它不能格式化,也不能分配盘符。但可在扩展分区中创建一个或多个逻辑分区,或称逻辑驱动器、卷(volume)。每个逻辑分区分配一个盘符,可以格式化成一个特定的文件系统。为了实现存储空间的分配和回收,系统应 阅读全文
posted @ 2012-11-25 21:27 我不是geek 阅读(4783) 评论(0) 推荐(0)
摘要:上篇说到文件内部的逻辑结构和物理结构,而如何在系统中实现按文件名存取文件是非常重要的,也就是如何实现文件名到物理存储地址的转换。为了实现“按名存取”,系统必须为每个文件设置用于描述和控制文件的数据结构,它至少要包括文件名和存放文件的盘物理地址,这个数据结构称为文件控制块FCB,文件控制块的有序集合称为文件目录,即一个文件控制块FCB就是一个文件目录项。文件控制块FCB中包含的信息有以下三类:1. 基本信息类文件名:标识一个文件的符号名,在每个系统中文件必须具有唯一的名字。. 文件的物理地址:这由于文件的物理结构不同而不同。对于连续文件就是文件的起始块号和文件总块数;对于MS-DOS是文件的起始 阅读全文
posted @ 2012-11-25 20:47 我不是geek 阅读(3149) 评论(0) 推荐(0)
摘要:计算机系统对系统中软件资源:无论是程序或数据、系统软件或应用软件都以文件方式来管理。文件是存贮在某种介质上的(如磁盘、磁带等)并具有文件名的而且在逻辑上具有完整意义的一组有序信息的集合。文件系统就是操作系统中实现对文件的组织、管理和存取的系统程序,或则说文件系统是管理软件资源的软件,文件系统是用户和外存的接口。文件系统的功能有:(1)实现文件按文件名存取,实现从文件名到物理存储地址的转换(2)管理文件存储空间的分配和回收(3)实现文件的基础操作:新建、删除、修改等操作(4)实现文件共享和安全性(5)实现文件目录的管理(6)向用户提供文件系统的接口------------------------ 阅读全文
posted @ 2012-11-25 20:03 我不是geek 阅读(1021) 评论(0) 推荐(0)
摘要:磁盘高速缓存:在磁盘和cpu之间插入一个更快和更小的存储单元,作用是减小对磁盘的平均存取时间,称为磁盘高速缓存(disk cache)。主要是在内存中开辟一块区域为磁盘扇区缓冲区,这个缓冲区包含了磁盘一部分数据的副本,当I\O请求磁盘时,首先检查缓冲区中是否存在该扇区,如果有则直接对cache操作,否则被请求的扇区首先被写进cache中。缓冲区的替换策略:最近最少使用算法,cache中没有被使用最长的扇区将被替换。磁盘高速缓存数据的安全性:读数据没有问题,因为数据在磁盘中还有备份,而写数据则可能出现问题,数据未能及时写进磁盘,而cpu认为数据已经写入磁盘。因此,操作系统必须在合适的时间将数据从 阅读全文
posted @ 2012-11-14 21:05 我不是geek 阅读(422) 评论(0) 推荐(0)
摘要:磁盘管理包括磁盘调度算法、磁盘高速缓存、RAID技术。首先学习磁盘的结构如图所示:磁盘由多个盘片组成,每个盘片有两个盘面,每个盘片都有两个磁头,统一由磁头臂控制。盘片上的存储区域被分为磁道,每个磁道上又分多个扇区。如图,每个扇区的大小事512字节,所以扇区也是数据存储和传输的基本单位。按磁头的工作方式,可以分为活动头磁盘和固定头磁盘。1.活动头磁盘活动头磁盘一个盘面上仅配有一个磁头,所有磁头都安装在一个传动臂上,在访问盘面上的磁道时,传动臂在步进电机的控制下,可在整个盘面上从外向内,或从内向外移动,这称为寻道。活动头磁盘只能进行串行读/写,导致I/O速度较馒,但是由于结构简单,仍广泛用于中、小 阅读全文
posted @ 2012-11-14 19:31 我不是geek 阅读(2953) 评论(1) 推荐(1)
摘要:在操作系统中,引入缓冲的主要原因,可归结为以下几点:1.改善CPU与I/O设备间速度不匹配的矛盾。例如一个程序,它时而进行长时间的计算而没有输出,时而又阵发性把输出送到打印机。由于打印机的速度跟不上CPU,而使得CPU长时间的等待。如果设置了缓冲区,程序输出的数据先送到缓冲区暂存,然后由打印机慢慢地输出。这时,CPU不必等待,可以继续执行程序。实现了CPU与I/O设备之间的并行工作。事实上,凡在数据的到达速率与其离去速率不同的地方,都可设置缓冲,以缓和它们之间速度不匹配的矛盾。众所周知,通常的程序都是时而计算,时而输出的。2.可以减少对 CPU的中断频率,放宽对中断响应时间的限制。如果I/O操 阅读全文
posted @ 2012-11-14 17:15 我不是geek 阅读(2230) 评论(0) 推荐(0)
摘要:线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括: 1.线程ID 每个线程都有自己的线程ID,这个ID在本进程中是唯一的。进程用此来标 识线程。 2.寄存器组的值 由于线程间是并发运行的,每个线程有自己不同的运行线索,当从一个线 程切换到另一个线程上时,必须将原有的线程的寄存器集合的状态保存,以便 将来该线程在被重新切换到时能得以恢复。 3.线程的堆栈 堆栈是保证线程独立运 阅读全文
posted @ 2012-10-29 09:32 我不是geek 阅读(14553) 评论(0) 推荐(3)
摘要:为了提高操作系统的可适应性和可扩展性,目前几乎所有的操作系统都实现了设备的独立性(Device Independence)(也称为设备无关性)。用户程序的设备独立性是:用户程序不直接使用物理设备名(或设备的物理地址),而只能使用逻辑设备名;而系统在实际执行时,将逻辑设备名转换为某个具体的物理设备名,实施I/O操作。I/O软件的设备独立性是:除了直接与设备打交道的低层软件之外,其他部分的软件并不依赖于硬件。I/O软件独立于设备,就可以提高设备管理软件的设计效率。I/O软件采用分层结构,它把软件组织成为一系列的层,低层参与隔离硬件特征,使其它部分软件不依赖硬件;而高层则参与向用户提供一个友好的、清 阅读全文
posted @ 2012-10-25 20:07 我不是geek 阅读(3978) 评论(0) 推荐(0)
摘要:一、设备分配的策略为了使系统能够安全高效地工作,系统在进行设备分配时应考虑的因素有:⑴设备的固有属性;⑵设备的分配算法;⑶设备分配的安全性。1.根据设备的固有属性而采取的策略在分配设备时,首先应考虑设备的属性。根据设备的固有属性采取以下三种策略:(1)独享方式独享方式是指将一个设备分配给某进程后,便一直由它独占,直至该进程完成或释放该设备为止,系统才能将该设备分配给其它进程使用。这种分配方式是对独占设备采用的分配策略。它不仅往往造成设备利用率低,而且还会引起系统死锁。(2)共享方式共享方式是指将共享设备(磁盘)同时分配给多个进程使用。但是这些进程对设备的访问需进行合理的调度。(3)虚拟方式虚拟 阅读全文
posted @ 2012-10-25 19:10 我不是geek 阅读(5562) 评论(0) 推荐(0)
摘要:一、学习IO控制方式之前首先学习IO系统结构组成。1.大、中、小型计算机的硬件组织 小型到大型的计算机系统多由中央处理机(CPU)、输入输出处理机(又称通道)、存储器和输入输出设备组成,图1-1是一个典型中型计算机(IBM370)的硬件组织,这类计算机以存储器为中心,CPU和各种通道都与存储器相连,CPU执行的程序和数据都存放在存储器中并从存储器中取来执行。CPU需要与输入输出设备交换数据时,不能直接从输入输出设备中取(或存)数据,它必须命令通道来负责进行管理和控制数据输入输出,把数据输入到存储器或从存储器输出。2.微型计算机的典型组织 微型计算机是以总线为纽带来构成计算机系统,中央处理机.. 阅读全文
posted @ 2012-10-25 17:20 我不是geek 阅读(10107) 评论(1) 推荐(2)
摘要:一、设备的分类1、按照设备传输速率分类(1)低速设备:传输速率在几字节到几百字节的设备,如鼠标、键盘灯输入输出设备。(2)中速设备:指传输速率在每秒钟数千个字节至数十千个字节的设备。典型的设备有行式打印机、激光打印机等(3)高速设备:指传输速率在数百千个字节至数兆字节的设备。典型的设备有磁带机、磁盘机、光盘机等存储设备。2、按功能分类(1)输入输出设备:键盘、鼠标、显示器、打印机等设备,主要的任务就是输入或者输出。(2)存储设备:磁带机、磁盘、光盘机,他们同时是输入输出设备,但是主要的功能是进行存储。3、按数据传输的单位分类(1)块设备(Block Device):指以数据块为单位来组织和传送 阅读全文
posted @ 2012-10-25 14:40 我不是geek 阅读(3011) 评论(1) 推荐(1)
摘要:设备管理一般指的是计算机外部设备,主要功能有设备分配、设备映射、设备驱动、I\O缓冲区的管理等。设备分配:用户进程不能直接使用设备,必须通过操作系统的分配和调度完成对设备的操作。操作系统对提出申请使用设备的进程使用分配算法,按照一定的策略为用户分配设备,并且记录设备的使用情况。设备映射:操作系统要求程序中对设备的引用不能通过物理名称指定,这样做是为了提高应用软件对设备的适应性。应用软件不应该知道将会使用到的具体哪一台设备,由操作系统调度。因此,设备的名称有了逻辑名称和物理名称,逻辑名称是在程序中使用的,每一类设备使用统一的命名规则,物理名称则是实际用户可见的设备。操作系统必须完成从逻辑名称到物 阅读全文
posted @ 2012-10-19 17:23 我不是geek 阅读(477) 评论(0) 推荐(0)
摘要:在将页面算法置换算法之前,首先需要了解系统如何分配给每个进程内存空间,即为每个进程分配多少个页框驻留进程。分配到的页框称为驻留集。有两种方法:固定驻留策略和动态驻留策略。固定驻留策略指为每个进程分配固定的页框数,不能增减,也不能使用别的进程的空间动态驻留策略指在进程活跃期间,系统可以根据进程的缺页率进行动态调整,进程的页框数可以增减。这样就有两个问题:页框置换的范围,如何选择置换出内存的页框。页框置换有局部置换和全局置换,局部置换仅限于本进程的空间中,全局置换则允许置换别的进程中的页框。固定驻留策略必然导致局部置换,而全局置换必须使用动态驻留策略。第一个问题解决,第二个问题则涉及到置换算法,坏 阅读全文
posted @ 2012-10-16 22:25 我不是geek 阅读(6164) 评论(0) 推荐(1)
摘要:内存存储管理技术分为简单存储管理技术和虚拟存储管理技术,区别在于简单存储管理技术一次性的将进程的程序和数据装入内存,而虚拟存储管理技术则允许一部分程序和数据装入内存开始执行。从内存分配的连续性上,存储管理技术又分为连续存储和非连续存储,其中非连续存储分为分页存储、分段存储和段页式存储。连续存储则是上几次内存管理学习内容中的主角,这里不再详细介绍。连续存储首先介绍连续存储中的越界保护问题,在连续存储系统中,将会为每个进程都分配两个寄存器来存储进程内存空间的基址和大小,分别为基址寄存器和界限寄存器。进程在装入内存后将自己所分配到的基址和尾址存放在pcb中,等待cpu调用时将这两个值放入寄存器中。当 阅读全文
posted @ 2012-10-16 21:55 我不是geek 阅读(965) 评论(0) 推荐(0)
摘要:程序执行的过程经历几个阶段:编译---链接---装入内存模块---执行阶段。源程序经过编译后成为目标文件模块,在经过链接库文件等后变成可执行文件。链接的方式有两种:静态链接和动态链接。静态链接指在执行前将所有的目标模块都链接到可执行文件中等待装入执行。动态链接分为装入时动态链接和执行时动态链接。动态链接允许程序不必形成完整的可执行文件,而是生成一个未完成链接的外部模块,等待装入。装入时动态链接指在装入时遇到外部模块连接查找相应的目标模块装入内存,这种方法仍然要将所有的链接模块都装入内存,知识将链接推迟到了装入时。执行时动态链接指在执行时遇到链接部分查找相应的模块装入内存,木有用处的模块将不会装 阅读全文
posted @ 2012-10-15 21:58 我不是geek 阅读(515) 评论(0) 推荐(0)
摘要:内存的划分分为静态划分和动态划分。都是连续内存存储技术,而非连续内存存储技术有分页、页段式分段。静态划分预先将物理内存划分为固定分区,当新进程装进内存,选择合适的空闲分区分配给进程。又称为固定分区法,分区的长度可以不同。管理分区使用分区使用表,表项的内容是分区编号(线性的)、分区大小、分区使用情况。按照分区大小从小到大方式排列。一种特殊的固定分区法:分页式划分。将内存划分为很小的页框,其中页框远小于上述的分区。两者的区别是:固定分区要求进程存进连续的内存空间,而分页式划分允许进程可以不连续存储在不同的页框。页框的管理使用空闲页框表,将连续空闲的页框集中管理。静态划分的缺点是会产生大量的内零头, 阅读全文
posted @ 2012-10-15 21:21 我不是geek 阅读(5043) 评论(0) 推荐(0)
摘要:操作系统的存储管理包含内存管理和外存管理,外存管理涉及到外设管理,因此这里主要讲内存管理。从所周知,cpu直接从内存中读取置零和数据,而不会与外存进行交互,因此存储在外存的程序和数据(可执行文件)必须装入内存才能够执行,这就是冯.诺依曼存储思想。但是在多道程序操作系统中或者是存在大进程的情况下,物理内存不一定够用,为了扩展内存就发明了虚拟存储技术等扩展技术,将程序的一部存在外存上,等到使用时调入内存即可。扩展技术有覆盖、交换和虚拟存储技术。问题1:多道程序操作系统中,程序的装入时一次性还是先装入一部分然后边执行边装入?若一次行装入内存不足,若边执行边装入效率低下。答1:现在系统多采用虚拟存储管 阅读全文
posted @ 2012-10-15 16:21 我不是geek 阅读(366) 评论(0) 推荐(0)
摘要:一、分别编译与链接(Linking)大多数高级语言都支持分别编译,程序员可以显式地把程序划分为独立的模块或文件,然后每个独立部分分别编译。在编译之后,由链接器把这些独立的片段(称为编译单元)“粘接到一起”。(想想这样做有什么好处?)在C/C++中,这些独立的编译单元包括obj文件(一般的源程序编译而成)、lib文件(静态链接的函数库)、dll文件(动态链接的函数库)等。静态链接方式:在程序执行之前完成所有的组装工作,生成一个可执行的目标文件(EXE文件)。动态链接方式:在程序已经为了执行被装入内存之后完成链接工作,并且在内存中一般只保留该编译单元的一份拷贝。二、静态链接库与动态链接库先来阐述一 阅读全文
posted @ 2012-10-15 09:53 我不是geek 阅读(23315) 评论(0) 推荐(2)