- 博客(26)
- 收藏
- 关注
原创 linux操作系统二 进程管理
执行线程,是进程中活动的对象。每个线程拥有一个独立的线程计数器,进程栈和一组进程寄存器。内核调度的是线程而非进程。1.进程描述符及其任务结构 内核把进程放在叫做任务队列的双向循环链表中。链表中的每一项都是类型为task_struct,称为进程描述符,其结构定义位于linux/sched.h文件中。进程描述符中包含一个具体进程的所有信息。task_struct在32位机器上,大约有
2012-12-26 13:21:10
740
原创 操作系统学习笔记六:进程同步
1.背景 多个进程并发访问和操作同一数据且执行结果与访问发生的特定顺序有关,称为竞争条件。2.临界区问题 假设某个系统有n个进程。每个进程有一个代码段称为临界区,在该区中进程可能改变共同变量、更新一个表、写一个文件等。这种系统不允许两个进程同时在临界区执行。临界区问题是设计一个以便进程协作的协议 每个进程必须请求允许进入临界区,实现这一请求的代码称为进
2012-12-26 13:16:19
1071
原创 操作系统十五安全
1.安全问题 入侵者和骇客代表那些试图违反安全的事 威胁意味着对违反安全的潜在危险,如漏洞 攻击是试图破坏安全 攻击保密性:违反涉及未授权的读数据。从系统或数据流中捕获秘密数据,如信用卡、身份信息,可使入侵者得到直接经济回报 攻击完整性:违反涉及未授权的数据修改。如将债务转给无辜的一方,或修改重要商业应用的源代码
2012-12-26 13:08:57
800
原创 操作系统十九二十实时系统 多媒体系统
1.概述 实时系统不仅要求计算结果正确,而且要求结果必须在一个特定的截止期限内产生。例如一个机器人在走近墙时,他的视觉控制系统开始识别,如果在撞墙之后才识别出是墙,尽管正确识别了墙,但该系统已不满足要求。 许多实时系统是嵌入式的,但对于用户这不是显而易见的。也不是所有的嵌入式系统都是实时的。 实时计算有两种:硬性和软性。硬实时系统有最严格的要求保证关键实时
2012-12-25 22:39:58
908
原创 操作系统十七八分布式文件系统 分布式协调
1.背景 分布式文件系统DFS是用来共享物理上分散的文件。2.命名和透明性 命名是在逻辑对象和物理对象之间建立的映射2.1命名结构 2.2命名方案 2.3实现技术 3.远程文件访问3.1基本的缓存设计 DFS的高速缓存被简单的称为网络虚拟存储器,它类似于按需分页的虚拟内存,不过备份存储通常不是本地磁盘
2012-12-25 21:10:33
580
原创 操作系统十六分布式系统结构
1.动机 分布式系统是通过通信网络而松散连接的一组处理器的集合。从其某一特定处理器来看,其他处理器及其资源都是远程的。 分布式系统的处理器包括小的微处理器、工作站、小型机、大型通用计算机系统。有许多名称来称呼这些处理器,如站点、节点、计算机、机器、主机、客户机、服务器,具体是什么要根据上下文。 需要建立分布式系统是因为:资源共享、加快计算机速度、可靠性、通
2012-12-25 18:20:44
1096
原创 操作系统 十四保护
1.保护目标 2.保护原则 3.保护域 4.访问矩阵 5.访问矩阵的实现 6.访问控制 7.访问权限的撤回 9.基于语言的保护 9.2Java的保护 10.小结 计算机包括许多对象,系统必须保护这些对象以防他们被利用。一个访问权限是在一个对象上执行某项操作的许可。一个域是一个访问权限的集合。进
2012-12-24 21:35:15
621
原创 操作系统十三I/O输入系统
1.概述 IO技术呈现两个相矛盾的趋势,一方面,可以看到硬件与软件 接口日益增长的标注化,这有助于将设备集成到现有计算机和操作系统。另一方面,也可以看到IO设备日益增长的多样性。 为封装不同设备的细节与特点,操作系统内核设计成使用设备驱动程序模块的结构。设备驱动程序是为IO子系统提供统一设备访问接口,就像系统调用为应用程序域操作系统提供了统一的标准接口一样。2.IO
2012-12-23 21:36:08
2474
原创 操作系统十二大容量存储的结构
1.简介 当磁盘在使用时,驱动器马达会高速旋转磁盘。大多数驱动器每秒可转60~200圈 寻道时间是指移动磁臂到所要的柱面的时间 旋转等待时间指所要的扇区旋转到磁臂下所需时间 磁盘速度有两部分,传输速率是在驱动器和计算机之间的数据传输速率;定位时间或随机访问时间由寻道时间和旋转等待时间组成。典型磁盘能以每秒兆字节的速率传输,寻道时间和旋转等
2012-12-22 20:27:37
2233
原创 操作系统十一文件系统实现
1.文件系统结构 磁盘有两个特点使其称为存储的方便介质 可以原地重写 可以直接访问磁盘的任意一块信息。文件的切换只需移动磁头并等待磁盘的转到。。 内存与磁盘之间的IO转移是以块为单位的。每块为一个或多个扇区。扇区大小通常为512B 文件系统本身又许多不同的层组成。每层利用较低层的功能来为更高层服务。
2012-12-19 21:21:08
3076
原创 操作系统十文件系统接口
1.文件概念 通常文件表示程序(源形式和目标形式)和数据。 源文件由子程序和函数组成,而他们又是由声明和执行语句构成。目标文件由一系列字节序列,他们按连接器所能理解的方式组成。1.1文件属性 名称、标识符、类型、位置、保护、时间日期用户标识1.2文件操作 创建、读、写、在文件内重定位、删除、截短 每个打开文件有如
2012-12-17 22:59:48
1168
原创 操作系统七死锁
1.系统模型 当一组进程中的每个进程都在等待一个事件,而这一事件只能由这一组进程的另一进程引起,那么这组进程就处于死锁状态。2.死锁特征2.1必要条件 下面4个条件同时满足,那么会引起死锁 互斥:一次只有一个进程使用 占用并等待:一个进程必须占用至少一个资源,并等待另一资源而改资源被其他进程占用
2012-12-16 22:50:47
956
原创 操作系统九虚拟内存
1.背景 实际情况下,程序不必全部放到内存中。例如 程序处理异常错误条件的代码,因为这些错误很少发生 数组、表等分配了比实际所需的更多内存。声明一个100*100的数组,可能实际用到的只是10*10 程序的某些选项或功能很少用。 虚拟内存将用户逻辑内存与物理内存分开。虚拟内存使编程更加容易,程序员不必担心有限的物理内存
2012-12-15 22:42:49
1014
原创 操作系统八内存管理
CPU直接访问的存储器只有内存和处理器内的寄存器。1.基本硬件 CPU可以在一个cpu时钟内执行一个或多个其内置寄存器的指令。而访问内存需多个cpu时钟。由于内存频繁访问,可以再cpu与内存之间增加高速缓存 为确保进程有独立的内存空间,可用基地址寄存器和界限地址寄存器来确立一个合法地址以供其他进程访问。基地址寄存器含有最小的合法物理内存地址,界限地址寄存器决定合法地
2012-12-14 22:39:52
5570
转载 GNU C
GNU CC是一个功能非常强大的跨平台C编译器,它对C语言提供了很多扩展,这些扩展对优化、目标代码布局、更安全的检查等方面提供了很强的支持。本文把支持GNU扩展的C语言称为GNU C。 Linux内核代码使用了大量的GNU C扩展,以至于能够编译Linux内核的唯一编译器是GNU CC,以前甚至出现过编译 Linux内核要使用特殊的GNU CC版本的情况。本文是对Linux内核使用的GN
2012-12-09 22:43:50
608
原创 linux内核编程一概述
1.操作系统和内核简介 linux 把操作系统划分为内核空间和用户空间。对于提供保护机制的现代系统来说,内核拥有受保护的内存空间和访问硬件设备的所有权限。相对的,应用程序在用户空间执行,其通过系统调用和内核通信来运行。 linux是一个单内核,linux运行于单独的内核地址空间。不过他也汲取了微内核的精华:模块化设计、抢占式内核、支持内核线程以及动态装载内核。同时避
2012-12-08 21:30:55
542
原创 操作系统学习笔记五CPU 调度
每当cpu空闲时,操作系统必须从就绪队列中选择一个进城来执行。进程选择由短期调度程序后cpu调度程序执行。与cpu调度功能有关的另一个部分是分派程序,用来将cpu的控制权交给短期调度程序选择的进程。为比较cpu的调度算法,有以下准则:cpu使用率、吞吐量、周转周期、等待时间、响应时间。1.调度算法 就绪队列不鄙视FIFO队列,就绪队列可以实现为FIFO队列、优先队列、树、
2012-12-07 23:07:27
2078
原创 linux操作系统原理与应用 一
操作系统=内核+系统程序系统程序=编译环境+API+AUI编译环境=编译程序+连接程序+装载程序API=系统调用+语言库函数AUI=Shell+系统服务例程+应用程序 应用软件是针对最终用户需求编写的,系统软件是为了简化应用程序的开发而存在的,例如编程语言的执行环境为应用程序开发了提供诸如IO操作、图形库等基础服务。 POSIX表示可移植操作系统接口,是
2012-12-06 23:28:39
3326
转载 list.h 二
9.合并链表既然我们可以切割链表,那么当然也可以合并了。先看最基本的合并函数,就是将list这个链表(不包括头结点)插入到prev和next两结点之间。这个代码阅读起来不困难,基本上是“见码知意”。01271static inlinevoid __list_splice(conststruct list_head *list,
2012-12-06 23:12:26
464
转载 list。h 一
双链表的应用在内核中随处可见,list.h头文件集中定义了双链表(struct list_head结构体)的相关操作。比如这里的一个头文件中就有大量的struct list_head型的数据。关于list.h的分析,网上资料很多,这里只是记录我在分析list.h中遇到的问题。0.struct list_head结构体可能这样写,更让我们习惯:view sourcep
2012-12-06 23:09:59
376
原创 UNIX/linux进程和作业控制
用于创建和使用进程的系统调用有fork、exec、wait和exit。 举例:shell运行外部命令时,先fork调用创建当前进程的一个副本。子进程使用exec将他自身从运行shell的进程变成运行外部程序的进程。其次,父进程使用wait系统调用暂停执行,直到子进程结束执行。最后,外部程序结束,子进程使用exit终止自身的执行。子进程释放所有资源,但保留相关数据条目,成为一种数据结构
2012-11-27 21:44:58
853
原创 使用shell:变量和选项
1.交互式shell和非交互式shell shell 1.是一个命令解释器 2.支持一些类型的编程语言,用来编写由shell解释的程序,这些程序称为shell脚本。 交互式程序指的是与人进行沟通的程序,如字处理程序。非交互式程序是独立于人运行的程序,如编译器。 shell既可以从当用户界面,又可作为脚本解释器。
2012-11-23 23:52:35
589
原创 操作系统学习笔记三进程
3.1进程概念 进程与作业称谓上的不同1进程 进程是执行中的程序,这只是非正式的说法。进程不只是程序代码,还包括当前活动,通过程序计数器的值和处理器寄存器的内容来表示。此外,进程还包括进程堆栈段(临时数据、函数参数、局部变量、地址)和数据段(包括全全局变量。还可能包括堆(leap),是动态分配的内存。 进程是一个活动实体,他有一个程序计数器
2012-11-13 22:43:11
1241
原创 .NET框架
.NET框架是一套包含了类库集合、执行环境和开发平台的技术。这个平台允许基于.net框架编程而不是针对任何特定平台。基于.net框架编写的程序不需要担心平台或底层操作系统的特性。因此,实现了.NET的体系结构都可以执行.NET程序。这是因为运行环境提供了一个介于底层体系结构和被运行程序之间的虚拟机。 .net框架的核心是公共语言运行时间(CLR)。CLR是虚拟机的实现,他提供了任何.ne
2012-11-09 17:48:02
830
原创 操作系统学习笔记(二)操作系统结构
2.1操作系统服务 用户界面:命令行界面(command-line interface,CLI)、批界面、图形用户界面2.2操作系统的用户界面 有的操作系统在其内核部分包括命令解释程序。其他操作系统,如windows、linux等将命令解释程序作为一个特殊 程序,当任务开始或用户首次登录(分时系统)时,改程序就会运行。在具有多个命令解释程序选择的系统中
2012-11-08 23:45:50
1450
原创 操作系统学习笔记一
1.1计算机系统操作 打开电源或重启时,计算机开始运行,需要运行一个初始化程序(引导程序),该引导程序(bookstrap program)比较简单通常位于只读内存(ROM)或者EEPROM(电可擦可编程只读存储器),称为 计算机硬件中的固件。他初始化系统中的包括cpu寄存器,设备控制器和内存内容等所有部分。引导程序必需知道如何装入操作系统和开始执行系统。因此,引导程序必须定位操作系统内核并
2012-11-05 23:07:17
1071
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人