文档库 最新最全的文档下载
当前位置:文档库 › 实时多任务操作系统的结构

实时多任务操作系统的结构

实时多任务操作系统的结构
实时多任务操作系统的结构

浅析实时多任务操作系统的结构

【摘要】本文首先从实时系统的特征引入,然后通过介绍操作系统的分类和定义,来引出实时多任务操作系统的基本构成和主要特点。最后简要讨论一下z-80微机系统的os监控程序的组成及功能,并在此基础上展开z-80微机工业实时控制系统的实时操作系统的分析。

【关键词】实时操作系统;多任务操作系统;结构

在21世纪的今天,物联网技术发展迅速,并被广泛应用到工业控制的各个领域之中,正在成为工业革命和工业改造的主导技术力量。这都是在产生和发展了实时操作系统之后,才成为现实的。一台或几台计算机只有在实时操作系统的统一组织和合理调度之下,才能组成一个实时控制系统,才能实现对复杂的工业过程的实时控制。而它又是在一般操作系统(简称为os)基础上发展起来的,要设计实时os,应首先掌握os的一般原理,运用设计os的基本方法和技巧,结合实时os的结构特点加以具体实现。

本文将在介绍os有关概念的基础上,对实时os进行详细分析,以使我们从实时os出发,来解剖z-80系统监控程序,掌握z-80微机工业实时控制系统的实时os的设计方法和技巧,并进一步展开系统应用程序设计的讨论。

1 实时系统的特征

实时系统是能及时响应外部发生的随机事件,并以足够快的速度完成对事件的处理的计算机应用系统。所谓外部事件是指与计算机

(完整版)操作系统基础知识点详细概括

第一章: 1. 什么是操作系统?OS的基本特性是?主要功能是什么 OS是控制和管理计算机硬件和软件资源,合理组织计算机工作原理以及方程用户的功能的集合。特性是:具有并发,共享,虚拟,异步的功能,其中最基本的是并发和共享。主要功能:处理机管理,存储器管理,设备管理,文件管理,提供用户接口。 2. 操作系统的目标是什么?作用是什么? 目标是:有效性、方便性、可扩充性、开放性 作用是:提供用户和计算机硬件之间的接口,提供对计算机系统资源的管理,提供扩充机器 3. 什么是单道批处理系统?什么是多道批处理系统? 系统对作业的处理是成批的进行的,且在内存中始终保持一道作业称此系统为单道批处理系统。 用户所提交的作业都先存放在外存上并排成一个队列,然后,由作业调度程序按一定的算法从后备队列中选择若干个调入作业内存,使他们共享CPU和系统中的各种资源。 4 ?多道批处理系统的优缺点各是什么? 优点:资源利用率高,系统吞吐量大。缺点:平均周转时间长,无交互能力。 引入多道程序技术的前提条件之一是系统具有终端功能,只有有中断功能才能并发。 5. 什么是分时系统?特征是什么? 分时系统是指,在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互的方式使用计算机,共享主机中的资源。 特征:多路性、独立性、及时性、交互性 *有交互性的一般是分时操作系用,成批处理无交互性是批处理操作系统,用于实时控制或实时信息服务的是实时操作系统,对于分布式操作系统与网络操作系统,如计算机之间无主次之分就是分布式操作系统,因为网络一般有客户-服务器之分。 6. 什么是实时操作系统? 实时系统:系统能及时响应外部事件的请求,在规定的时间内处理完。按照截止时间可以分为1硬实时任务(必须在截止时间内完成)2软实时任务(不太严格要求截止时间) 7用户与操作系统的接口有哪三种? 分为两大类:分别是用户接口、程序接口。 用户接口又分为:联机用户接口、脱机用户接口、图形用户接口。 8. 理解并发和并行?并行(同一时刻)并发(同一时间间隔) 9. 操作系统的结构设计 1 ?无结构操作系统,又称为整体系统结构,结构混乱难以一节,调试困难,难以维护 2?模块化os结构,将os按功能划分为一定独立性和大小的模块。是os容易设计,维护, 增强os的可适应性,加速开发工程 3?分层式os结构,分层次实现,每层都仅使用它的底层所提供的功能 4. 微内核os结构,所有非基本部分从内核中移走,将它们当做系统程序或用户程序来实现,剩下的部分是实现os核心功能的小内核,便于扩张操作系统,拥有很好的可移植性。 第二章: 1 ?什么叫程序?程序顺序执行时的特点是什么? 程序:为实现特殊目标或解决问题而用计算机语言编写的命令序列的集合特点:顺序性、封闭性、可再现性 2. 什么是前趋图?(要求会画前趋图)P35图2-2 前趋图是一个有向无循环图,记为DAG ,用于描述进程之间执行的前后关系。 3?程序并发执行时的特征是什么? 特征:间断性、失去封闭性、不可再现性

RTOS实时操作系统(Real Time Operating System)

John Lee 20:27:07 上次讲到了 RTOS 的抢占机制对事件响应能力提高的帮助,避免了事件的丢失。 John Lee 20:27:07 上次讲到了 RTOS 的抢占机制对事件响应能力提高的帮助,避免了事件的丢失。小道(569198569) 20:27:39 老师辛苦 John Lee 20:27:45 但光依靠 RTOS 的抢占机制,并不能做到完全不丢失事件,只是从一定程度上降低了丢失事件的机率。 丶砖家(1361439207) 20:28:16 LEE 丶砖家(1361439207) 20:28:14 好复杂呀 John Lee 20:28:54 上次的这个图: John Lee 20:30:20 是没有丢失事件了,但如果我们把 E2 的第 3 个事件提前一些: John Lee 20:32:30 对于这样情况,RTOS 提供了一些带有通信功能的同步对象,可以让应用程序构造软件缓冲机制,来保持突发事件。 John Lee 20:33:19 关于具体的实现方法,要等到我们学习完了 RTOS 同步机制和各种同步对象后,才能讨论。

John Lee 20:34:24 除此之外,还有其它一些系统设计时,需要仔细考虑的问题: 中断处理时间到底多长合适? 等待设备事件产生,是否一定要用中断? 如何划分任务? 如何确定合适的调度算法? 是否需要任务优先级? 静态优先级能不能满足要求? 系统节拍的频率多少合适? 如何选则合适的同步对象? DsPower小灰灰(108430786) 20:35:56 对这就是我的问题 wei(34103820) 20:36:02 John Lee 20:36:07 这些问题,都留到我们学习完 RTOS 后,再来讨论。 小道(569198569) 20:36:23 wei(34103820) 20:36:02 遵守纪律 John Lee 20:36:39 现在讨论,很多同学没有基础,晕的。 John Lee 20:37:12 我们继续学习《嵌入式系统的实时概念》。 DsPower小灰灰(108430786) 20:38:13 支持老师 DsPower小灰灰(108430786) 20:38:14 雪狼(982332664) 20:38:55 我都晕乎了 John Lee 20:40:01 我们上次停下来的地方,是: 4.4.5 调度算法。

嵌入式实时多任务操作系统

单片机系统中的多任务多线程机制的实现 文章作者:冉全章涤峰 文章类型:设计应用文章加入时间:2003年9月9日0:47 文章出处:单片机与嵌入式系统应用 摘要:单片机系统的开发多情况下不是在嵌入式操作系统平台上进行的,而是直接基于 处理器编写。在多任务并行执行的要求下,可以借鉴操作系统中的任务和线程机制,对资 源和处理器合理进行调度。本文以实例对此进行讨论。 关键词:单片机任务线程并行处理 引言 首先要指出的是一点是,我们不是讨论嵌入式实时多任务操作系统(RTOS)的设计。我们讨论的是,在不使用RTOS的控制系统中,如何体现多任务多线程机制的程序设计思想。 一些嵌入式设备可以需要操作系统,例如掌上电脑、PDA、网络控制器等高性能的手持设备和移动设备。它们往往和无线通信、互联网访问和多媒体处理 等复杂而强大的功能联系在一起;对CPU要求也很高,往往是以通用CPU为原 型的各种高端嵌入式处理器。 作为一个完整的操作系统,RTOS有一个可靠性很高的实时内核,将CPU时间、中断、I/O、定时器等资源都包括起来,留给用户一个标准的应用程序接口(API);根据各个任务的优先级,合理地在不同任务之间分配CPU的时间,保证程序执行的实时性、可靠性。内核一般都能提供任务调度和中断服务等功能,部分高档商业化产品,如Windows XP Embedded,甚至支持32位地址空间、虚 拟存储管理、多进程以及嵌入式操作系统中不多见的动态链接库(DLL)。对于这些RTOS来说,多任务实时处理不是件困难的事情。 但更多的情况下,用户使用的是另一类CPU——微控制器,即单片机,往往是按照某一流程执行单一任务。出于成本和技术上的原因,这类软件开发多数 还是基于处理器直接编写,没有选配实时多任务操作系统作为开发平台,也不

四种实时操作系统特性进行分析和比较

四种实时操作系统特性进行分析和比较 https://www.wendangku.net/doc/488478352.html,2006年11月18日21:55ChinaByte 本文对四种实时操作系统(RTOS)特性进行分析和比较。它们是:Lynx实时系统公司的LynxOS、QNX软件系统有限公司的QNX以及两种具有代表性的实时Linux——新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux。 近年来,实时操作系统在多媒体通信、在线事务处理、生产过程控制、交通控制等各个领域得到广泛的应用,因而越来越引起人们的重视。 基本特征概述 *QNX是一个分布式、嵌入式、可规模扩展的实时操作系统。它遵循POSIX.1 (程序接口)和POSIX.2(Shell和工具)、部分遵循POSIX.1b(实时扩展)。它最早开发于1980年,到现在已相当成熟。 *LynxOS是一个分布式、嵌入式、可规模扩展的实时 操作系统,它遵循POSIX.1a、POSIX.1b和POSIX.1c标准。它最早开发于1988年。 *RT-Linux是一个嵌入式硬实时操作系统,它部分支持POSIX.1b标准。 *KURT-Linux不是为嵌入式应用设计的,不同于硬(hard)实时/软(soft)实时应用,他们提出“严格(firm)”实时应用的概念,如一些多媒体应用和ATM网络应用,KURT是为这样一些应用设计的“严格的”实时系统。 体系结构异同 实时系统的实现多为微内核体系结构,这使得核心小巧而可靠,易于ROM固化,并可模块化扩展。微内核结构系统中,OS服务模块在独立的地址空间运行,所以,不同模块的内存错误便被隔离开来。但它也有弱点,进程间通信和上下文切换的开销大大增加。相对于大型集成化内核系统来说,它必须靠更多地进行系统调用来完成相同的任务。 *QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。 *LynxOS目前还不是一个微内核结构的操作系统,但它计划使用所谓的“Galaxy”技术将其从大型集成化内核改造成微内核,这一技术将在LynxOS 3.0中引入。新的28Kb微内核提供以下服务:核心启动和停止、底层内存管理、出错处理、中断处理、多任务、底层同步和互斥支持。

第二章操作系统的基本原理

第二章操作系统的基本原理 一、本章需要熟练掌握的内容 1、计算机四大系统资源的管理机制:处理器、存储器、外围设备和文件四大资源的管理。 注重对基本概念的理解: 2、进程 (1)、进程是指一个可并发执行的程序(或程序段)在给定的工作空间和数据集合上的一次执行过程。它是操作系统进行资源分配和调度的一个独立或基本单位。 (2)、进程是动态的,它由操作系统创建并独立地执行,在执行过程中可能因某个条件不足而被暂时“阻塞”,当条件满足时又被“唤醒”并继续执行,直到任务完成而“撤销”。因此,进程有生命期,并在不同的状态之间动态地转换。 (3)、进程的并发特征是指一个进程能和其它进程并行执行,但各进程在逻辑上又相对独立,同时各进程的执行速度是不可预知的、异步的。因此,系统必须为进程提供同步机构,以确保进程能协调操作和共享资源。 (4)、一个进程至少要对应一个或多个程序。不同的进程可以调用同一个程序,但该程序必须在不同的数据集合上执行。 (5)、程序和进程的关系在于:程序是指令的有序集合,是静态的。程序的执行过程才是进程。 3、线程:在现代操作系统中,为了进一步提高进程的并发性,引入了线程(Thread)的概念。简单地说,一个进程可以包含多个线程,此时线程成为处理器调度的基本单位。 4、页式存储: 页式存储基本原理是预先把内存物理空间分成大小相等的存储“块”,比如每块为1k字节,并编上号码,同时把要运行程序的逻辑地址空间分成与“块”大小相同的“页”,也编上号码。

当把程序调入内存时,恰好把程序的某一“页”装入内存某一“块”,而且可以见缝插针地将若干连续的页装入分散的不连续的块中。由于页和块大小相等,所以除了最后一页可能小于块之外,其余都很合适,这样每一个内存碎片的大小不会超过一“块”的大小。 页式虚拟存储就是把内存和外存作为一个整体连续起来划分成块。在一个进程运行前,不必将其所有页装入内存,而只需先装入当前要运行的若干页。 在运行过程中。一旦发现所需要的程序页不在内存时,便请求系统分配存储块,然后将所需页从外存调入,并在页表中登录新调入的页号与对应的块号。这一调度过程在操作系统控制下自动实现的,用户无须干预。 5、虚拟存储: 当所运行进程需要较大的内存空间,而内存空间又有限时,存储管理提供虚拟存储的功能,将内存和大容量外存有机地结合起来,建立虚拟内存(VM:Virtual Memory),从而大大地扩展程序可运行空间。 虚拟存储的概念可从两个角度来理解。从逻辑存储空间角度看,程序的大小不定,经过编译连接后的目标程序地址多是从零地址开始的一维连续或二维段页式地址。这是一种虚拟地址或逻辑地址,它们都不是程序运行时的真正物理地址。我们把程序逻辑地址的全体所对应的存储器称为虚拟存储器,简称虚存。虚存地址空间大小有可能会超过实际物理内存空间。 从程序设计者角度看,虚拟存储器就是把内存和外存作为一个整体连续起来划分,当内存空间不足时,参与当前运行的部分程序可以暂存在外存中,一旦需要及时调入内存,而已经在内存中的部分程序目前可能不再使用,可以保存到外存。这样程序设计者不必忧虑内存是否够用,因为有巨大容量的外存可供使用。虚拟存储管理的工作就是及时恰当地调入调出当前程序,为进程提供“透明”的存储空间。 6、段式存储管理: 段式存储把其地址空间在逻辑上划分成若干个段(segment),如代码段、数据段、共享段等,这时用户程序的逻辑地址空间可以看成二维空间,其中一维是段号,另一维是段内从0开始的地址。利用连续可变分区或可重定位分区管理方式,为每一个段分配一个连续分区,而各段之间可以不连续。“段”成为程序的逻辑单位,它是由程序设计人员规定的,其长度随程序的不同而不同。

多任务操作系统Nucleus简介

多任务操作系统Nucleus简介 一、ATI公司简介 ■公司全称:Accelerated Technology Inc. ■成立于1990年8月 ■总部在美国Alabama州的Mobile ■在美国的加利佛尼亚,德克萨斯,马塞诸塞,佛罗里达以及田纳西等设有分支机构 ■在英国、法国和德国设有分支机构 ■在日本、韩国、澳大利亚、台湾、中国、意大利和俄罗斯等国设有代理商 1990年推出Nucleus实时多任务操作系统 ■专注于RTOS的研发、销售和技术应用及技术支持 ■1993年成为MOTOROLA推荐的四大RTOS厂商之一 ■1994年推出全球唯一的MNT虚拟开发平台 ■1994年推出全球唯一的VNET网络化虚拟平台 ■1994年成功地推出Java和RTOS产品 ■1995年成为全球第一大源代码RTOS厂商 ■1996年选定旋极科技公司为其中国大陆及香港地区独家代理商 ■1997年公司员工数量为82人,成为美国大型的RTOS厂商 ■1998年NET4.2成功推出 ■1998年成功推出机顶盒方案和OSEK汽车电子方案 ■1999年推出WebBrowser浏览器 ■1999年ATI公司员工数量为150人,已成为美国成长速度最快的嵌入式操作 系统公司 ■2000年NET4.4成功推出,完善了NUCLEUS的网络模块 二、Nucleus PLUS的特点: Nucleus PLUS 是为实时嵌入式应用而设计的一个抢先式多任务操作系统内核,其95%的代码是用ANSIC写成的,因此非常便于移植并能够支持大多数类型的处理器。从实现角度来看,Nucleus PLUS 是一组C函数库,应用程序代码与核心函数库连接

操作系统简答题(含答案)

1.OS的主要功能 操作系统的基本功能:处理机管理、存储管理、设备管理、信息管理(文件系统管理)、用户接口。 2.OS有哪三种类型?各有什么特点? 操作系统一般可分为三种基本类型,即批处理系统、分时系统和实时系统。 批处理操作系统的特点是:多道和成批处理。 分时系统具有多路性、交互性、“独占”性和及时性的特征。 实时系统特点:及时响应和高可靠性 3.OS的基本特征是什么? 并发性、共享性、虚拟技术、异步性 4.OS一般为用户提供了哪三种接口?各有什么特点? 1.联机命令接口 提供一组命令供用户直接或间接操作。根据作业的方式不同,命令接口又分为联机命令接口和脱机命令接口。 2.程序接口 程序接口由一组系统调用命令组成,提供一组系统调用命令供用户程序使用。3.图形界面接口 通过图标窗口菜单对话框及其他元素,和文字组合,在桌面上形成一个直观易懂使用方便的计算机操作环境. 5.OS主要有那些类型的体系结构? 单体结构、层次结构、微内核结构与客户机-服务器模型、虚拟机结构 6.多道程序设计的主要特点是什么? 多道程序设计技术是指在内存同时放若干道程序,使它们在系统中并发执行,共享系统中的各种资源。当一道程序暂停执行时,CPU立即转去执行另一道程序。 [特点]:多道、宏观上并行(不同的作业分别在CPU和外设上执行)、微观上串行(在单CPU上交叉运行)。 7.OS在计算机系统中处于什么地位? 操作系统在计算机系统中占有特殊重要的位置,所有其他软件都建立在操作系统基础上,并得到其支持和服务;操作系统是支撑各种应用软件的平添。用户利用操作系统提供的命令和服务操纵和使用计算机。可见,操作系统实际上是一个计算机系统硬件、软件资源的总指挥部。操作系统的性能决定了计算机系统的安全性和可靠性。 8.解释一下术语:进程、进程控制块、进程映像、线程、进程的互斥和同步、临界区和临 界资源、竞争条件、原语、信号量、管程、死锁、饥饿 进程:进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立的基本单位。 进程控制块(Procedure Control Block):使一个在多道程序环境下不能独立运行的程序(含

操作系统原理习题及答案(全书免费版)

第一章习题及答案 一、填空题 1.用户与操作系统的接口有,两种。 【答案】命令接口,系统调用 【解析】按用户界面的观点,操作系统是用户与计算机之间的接口。用户通过操作系统提供的服务来有效地使用计算机。一般操作系统提供了两类接口为用户服务,一种是程序一级的接口,即通过一组广义指令(或称系统调用)供用户程序和其他系统程序调用;另一种是作业一级的接口,提供一组控制命令供用户去组织和控制自己的作业。 2.用户程序调用操作系统有关功能的途径是。 【答案】利用系统调用命令 【解析】系统调用命令是操作系统专门给编程人员提供的调用操作系统有关功能的途径,一般在汇编语言和C语言中都提供了使用系统调用命令的方法。编程人员可以在这些语言中利用系统调用命令动态请求和释放系统资源。 3.UNIX系统是①操作系统,DOS系统是②操作系统。 【答案】①分时(或多用户、多任务),②单用户(或单用户、单任务) 【解析】 UNIX系统是一个可供多个用户同时操作的会话式的分时操作系统,DOS系统是为个人计算机设计的一个单用户操作系统。 4.现代计算机中,CPU工作方式有目态和管态两种。目态是指运行①程序,管态是指运行②程序。执行编译程序时,CPU处于③。 【答案】①用户,②操作系统,③目态 【解析】 CPU工作方式分为目态和管态,主要是为了把用户程序和操作系统程序区分开,以利于程序的共享和保护。 5.从资源分配的角度讲,计算机系统中的资源分为处理机、、和。操作系统相应的组成部分是、、和。 【答案】处理机、存储器、输入/输出设备和文件资源;处理机管理、存储器管理、设备管理和文件系统 【解析】计算机系统中的资源分为硬件资源和软件资源。硬件资源有处理机、内/外存储器及输入/输出设备。而软件资源指的是程序、数据和相应的文档。从资源管理的观点,操作系统是计算机资源系统的管理系统,它提供了处理机管理、存储器管理、输入/输出设备管理和信息文件管理的功能。对每种资源的管理都可从提供资源情况的记录、资源分配策略、资源分配和回收等几个方面来加以讨论。 6.根据服务对象不同,常用的单处理机OS可以分为如下三种类型: 允许多个用户在其终端上同时交互地使用计算机的OS称为①,它通常采用②策略为用户服务; 允许用户把若干个作业提交计算机系统集中处理的OS,称为③,衡量这种系统性能的一个主要指标是系统的④; 在⑤的控制下,计算机系统能及时处理由过程控制反馈的数据并作出响应。设计这种系统时,应首先考虑系统的⑥。 【答案】①分时OS,②时间片轮转,③批处理OS,④吞吐率,⑤实时OS,⑥实时性和可靠性 【解析】分时操作系统、批处理操作系统和实时操作系统是操作系统的三种基本类型。分时系统一般采用时间片轮转的办法,使一台计算机同时为多个终端用户服务,对每个用户都能保证足够快的响应时间,并提供交互会话能力;批处理系统则是把用户提交的作业(包括程序、数据和处理步骤)成批输入计算机,然后由作业调度程序自动选择作业运行,从而缩短了作业之间的交接时间,减少了处理机的空闲等待,提高了系统效率;实时系统是操作系统的另一种类型,要求对外部输入的信息能以足够快的速度进行处理,并在被控对象允许的时间范围内作出快速响应,其响应时间要求特别高。由于实时系统大部分是为特殊的实时任务设计的,这类任务对系统的可靠性和安全性要求很高。

操作系统结构

操作系统结构设计 操作系统是一种大型、复杂的并发系统,为了研制操作系统,首先必须研究它的结构,力求设计出结构良好的程序。操作系统的结构设计 有两层含义:一是研究操作系统的整体结构,由程序的构成成分组成操作系统程序的构造过程和方法;二是研究操作系统程序的局部结构,包括数据结构和控制结构。采用不同的构件和构造方法可组成不同结构的操作系统。本节将在讨论操作系统构件之后,全面介绍各种操作系统的构造方法。 1.2.1 操作系统的组件 通常把组成操作系统程序的基本单位称作操作系统的构件。剖析现代操作系统,构成操作系统的基本单位除内核之外,主要还有进程、线程、类程和管程。 1.内核现代操作系统中大都采用了进程的概念,为了解决系统的并发性、共享性和随机性,并使进程能协调地工作,单靠计算机硬件提供的功能是十分不够的。例如,进程调度工作目前就不能用硬件来实现;而进程自己调度自己也是困难的。所以,系统必须有一个软件部分能对硬件处理器及有关资源进行首次改造,以便给进程的执行提供良好运行环境,这个部分就是操作系统的内核。 由于操作系统设计的目标和环境不同,内核的大小和功能有很大差别。有些设计希望把内核做得尽量小仅具有极少的必需功能,称为微内 核(microkernel ),其他功能都在核外实现,通过微内核提供的消息传递机制完成其余功能模块间的联系;有些设计则希望内核具有较多的功能,虽然其内部也可划分成层次或模块,但运行时是一个大二进制映像,模块间的联系可通过函数或过程调用实现,称为单内核 (monolithickernel )。操作系统的一个基本问题就是内核的功能设计。微内核结构是现代操作系统的特征之一,这种方法把内核和核外服务程序的开发分离,可为特定应用程序或运行环境要求定制服务程序,具有较好的可伸缩性,简化了实现,提供了灵活性,很适合分布式系统的构造。 一般而言,内核必须提供以下 3 个方面的功能。 (1)中断处理。中断处理是内核中最基本的功能,也是操作系统赖以活动的基础,为了缩短屏蔽中断的时间,增加系统内的并发性,通常它仅仅进行有限的、简短的处理,其余任务交给在内核之外的特殊用户态进程完成。当中断事件产生时,先由内核截获并转向中断处理例行程序进行原则处理,它分析中断事件的类型和性质,进行必要的状态修改,然后交给内核之外的进程去处理。例如,产生外围设备结束中断事件时,内核首先分析是否正常结束,如果是正常结束,那么,就应释放等待该外围传输的进程;否则启动相应设备管理进程进行出错或异常处理。又如当操作员请求从控制台输入命令时,内核将把这一任务转交给命令管理进程去处理,以接收和执行命令。 (2)短程调度。主要职能是分配处理器。当系统中发生了一个事件之后,可能一个进程要让出处理器,而另一个进程又要获得处理器。短程调度按照一定的策略管理处理器的转让,以及完成保护和恢复现场的工作。由于它是协调进程竞争处理器资源的程序,所以它不是进程而是内核中的一个程序。 (3)原语管理。原语是内核中实现某一功能的不可中断过程。为了协调进程完成通信、并发执行和共享资源,各种原语是必不可少的。通信原语为进程相互传递消息,同步原语能协调并发进程之间的种种制约关系。此外,还有其他原语,如启动外围设备工作的启动原语,若启动不成功则请求启动者应等待,显然,这个启动过程应该是完整的,否则在成为等待状态时,可能外围设备已经空闲。由于设备的操作与硬件密切相关,故通常设备驱动程序等功能都放在内核中完成。 内核是操作系统对裸机的首次改造,内核和裸机组成了一台虚拟机,进程就在这台虚拟机上运行,它比裸机的功能更强大,具有以下特性: (1)虚拟机没有中断,因而,进程的设计者不再需要有硬件中断的概念,用户进程执行中无须处理中断; (2)虚拟机为每个进程提供了一台虚拟处理器,每个进程就好像在各自的私有处理器上顺序地推进,实现了多个进程的并发执行; (3)虚拟机为进程提供了功能较强的指令系统,即它们能够使用机器非特权指令、系统调用和原语所组成的新的指令系统。 为了保证系统的有效性和灵活性,设计内核应遵循少而精的原则。如果内核功能过强,则一方面在修改系统时可能牵动内核;另一方面它占用的内存容量和执行时间都会增大,且屏蔽中断的时间过长也会影响系统效率。因而,设计内核时应注意:中断处理要简单;调度算法要有效;原语应灵活有力、数量适当。这样就可以做到下次修改系统时,尽量少改动内核,执行时中断屏蔽时间缩短。 2.进程管理 程序本身并不能做什么,只有在CPL执行它的指令时才能有所作为;因此,可以把进程看做是正在运行的程序。但是当我们进一步研究时,对进程的定义将更为普遍。例如:一个分时用户程序(如编译器)是一个进程,个人用户在PC上运行的字处理程序是一个进程,一个系统任务(如输出到打印机)也是一个进程,并可以提供允许进程创建与其并发执行的子进程的系统调用。 进程需要特定的资源(包括CPU寸间、内存、文件和I/O设备)来完成工作。这些资源或者在进程创建时分配给它,或者在其运行时分配。除了在进程创建时所获得的各种物理资源和逻辑资源以外,各种各样的初始化数据(或输入)也可能一同传送给进程。例如,考虑一个能够在终端的显示屏上显示一

实时操作系统包括硬实时和软实时的区别

一.什么是真正的实时操作系统 做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN 上好多同学们都对实时、嵌入式这些概念似懂非懂,毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platformteam封装好的API。所以在此总结一下这些概念,加深自己的理解,同时也给新手入门,欢迎大家拍砖,争取写个连载,本文先总结一下实时的概念,什么是真正的实时操作系统? 1. 首先说一下实时的定义及要求: 参见 Donal Gillies 在 Realtime Computing FAQ 中提出定义:实时系统指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。如果未满足系统的时间约束,则认为系统失效。

一个实时操作系统面对变化的负载(从最小到最坏的情况)时必须确定性地保证满足时间要求。请注意,必须要满足确定性,而不是要求速度足够快!例如,如果使用足够强大的CPU,Windows在CPU空闲时可以提供非常短的典型中断响应,但是,当某些后台任务正在运行时,有时候响应会变得非常漫长,以至于某一个简单的读取文件的任务会长时间无响应,甚至直接挂死。这是一个基本的问题:并不是Windows不够快或效率不够高,而是因为它不能提供确定性,所以,Windows不是一个实时操作系统。 根据实际应用,可以选择采用硬实时操作系统或软实时操作系统,硬实时当然比软实时好,但是,如果你的公司正在准备开发一款商用软件,那请你注意了,业界公认比较好的VxWorks(WindRiver开发),会花光你本来就很少的银子,而软实时的操作系统,如某些实时Linux,一般是开源免费的,我们公司本来的产品就是基于VxWorks的,现在业界都在CostReduction,为了响应号召,正在调研如何把平台换成免费的嵌入式实时Linux。同学们,如何选择,自己考虑吧:-)

51单片机最简单的多任务操作系统

/* 51单片机最简单的多任务操作系统 其实只有个任务调度切换,把说它是OS有点牵强,但它对于一些简单的开发应用来说,简单也许就是最好的.尽情的扩展它吧.别忘了把你的成果分享给大家. 这是一个最简单的OS,一切以运行效率为重,经测试,切换一次任务仅个机器周期,也就是在标准(工作于M晶振)上uS. 而为速度作出的牺牲是,为了给每个任务都分配一个私有堆栈,而占用了较多的内存.作为补偿,多任务更容易安排程序逻辑,从而可以节省一些用于控制的变量. 任务槽越多,占用内存越多,但任务也越好安排,以实际需求合理安排任务数目.一般来说,4个已足够.况且可以拿一个槽出来作为活动槽,换入换入一些临时任务. task_load(函数名,任务槽号) 装载任务 os_start(任务槽号) 启动任务表.参数必须指向一个装载了的任务,否则系统会崩溃. task_switch() 切换到其它任务 .编写任务函数注意事项: KEIL C编译器是假定用户使用单任务环境,所以在变量的使用上都未对多任务进行处理,编写任务时应注意变量覆盖和代码重入问题. 1.覆盖:编译器为了节省内存,会给两个没用调用关系的函数分配同一内存地址作为变量空间.这在单任务下是很合理的,但对于多任务来说,两个进程会互相干扰对方. 解决的方法是:凡作用域内会跨越task_switch()的变量,都使用static前辍,保证其地址空间分配时的唯一性. 2.重入:重入并不是多任务下独有的问题,在单任务时,函数递归同样会导致重入,即,一个函数的不同实例(或者叫作"复本")之间的变量覆盖问题. 解决的方法是:使用reentrant函数后辍(例如:void function1() reentrant{...}).当然,根本的办法还是避免重入,因为重入会带来巨大的目标代码量,并极大降低运行效率. 3.额外提醒一句,在本例中,任务函数必须为一个死循环.退出函数会导致系统崩溃. .任务函数如果是用汇编写成或内嵌汇编,切换任务时应该注意什么问题? 由于KEIL C编译器在处理函数调用时的约定规则为"子函数有可能修改任务寄存器",因此编译器在调用前已释放所有寄存器,子函数无需考虑保护任何寄存器. 这对于写惯汇编的人来说有点不习惯: 汇编习惯于在子程序中保护寄存器. 请注意一条原则:凡是需要跨越task_switch()的寄存器,全部需要保护(例如入栈).根本解决办法还是,不要让寄存器跨越任务切换函数task_switch() 事实上这里要补充一下,正如前所说,由于编译器存在变量地址覆盖优化,因此凡是非静态变量都不得跨越 task_switch(). 任务函数的书写: void 函数名(void){//任务函数必须定义为无参数型 while(1){//任务函数不得返回,必须为死循环

(完整版)操作系统复习题简答题总结

1操作系统的基本特征有哪些? 答:操作系统的基本特征: (1)并发。并发是指两个或多个活动在同一给定的时间间隔中进行。(2)共享。共享是指计算机系统中的资源被多个任务所共用。 (3)异步性。在多道程序环境下,各个程序的执行过程有“走走停停”的性质。每一道程序既要完成自己的事情,又要与其他程序共享系统中 的资源。这样,它什么时候得以执行、在执行过程中是否被其他事情 打断(如I/O中断)、向前推进的速度是快还是慢等,都是不可预知的, 由程序执行时的现场所决定。另外,同一程序在相同的初始数据下, 无论何时运行,都应获得同样的结果。这是操作系统所具有的异步性。2操作系统的主要功能有哪些? 答:操作系统的主要功能包括:存储管理,进程和处理机管理,文件管理,设备管理以及用户接口管理。 3、操作系统一般为用户提供了哪三种界面?它们各有什么特点? 答: 4、操作系统主要有哪三种基本类型?它们各有什么特点? 5、操作系统主要有哪些类型的体系结构?UNIX系统和Linux系统各采用哪些结构? 答:一般说来,操作系统有四种结构:整体结构、层次结构、虚拟机结构、客户机-服务器结构。Linux系统采用的是整体结构。UNIX系统采用的是层次结构。

6、Linux系统有什么特点? 7、使用虚拟机有哪些优势和不足? 8、现代计算机系统由什么组成的? 9、在操作系统中,为什么要引入进程的概念?它与程序的区别和联系分别是什么?

10、操作系统在计算机系统中处于什么位置? 11、进程的基本状态有哪几种? 答:进程的基本状态有三种,分别为运行态、就绪态、阻塞态。 12、你熟悉哪些操作系统?想一想你在使用计算机过程中,操作系统如何提供服务? 答:我们最熟悉的一般为Windows操作系统,它是由微软(Microsoft)公司推出的一个功能强大的图形界面操作系统。常用的操作系统还有Linux,UNIX 操作系统。 我们在使用计算机时,首先接触的是用户界面,我们可以通过键盘上输入命令,在桌面上点击鼠标完成操作,这时系统就知道执行相应的功能。 13、PCB的作用是什么?它是怎样描述进程的动态性质的? 答:进程控制块PCB是进程组成中最关键的部分。每个进程有唯一的进程控制块;操作系统根据PCB对进程实施控制和管理,进程的动态、并发等特征是利用PCB表现出来的;PCB是进程存在的唯一标志。 PCB中有表明进程状态的信息:该进程的状态是运行态、就绪态还是阻塞态,利用状态信息来描述进程的动态性质。 14、PCB表的组织方式主要有哪几种?分别简要说明。 答:PCB表的组织方式主要有:线性方式、链接方式和索引方式。 线性方式是把所有进程的PCB都放在一个表中。 链接方式按照进程的不同状态把它们分别放在不同的队列中。 索引方式是利用索引表记载相应状态进程的PCB地址。 15、进程和线程的区别是什么? 答:(1)动态性。程序是静态、被动的概念,本身可以作为一种软件资源长期保存;而进程是程序的一次执行过程,是动态、主动的概念,有一定的生命周期,会动态地产生和消亡。 (2)并发性。传统的进程是一个独立运行的单位,能与其他进程并发执行。进程是作为资源申请和调度单位存在的;而通常的程序是不能作为一个独立运行的单位并发执行的。 (3)非对应性。程序和进程无一一对应关系。一个程序可被多个进程共用;一个进程在其活动中又可以顺序地执行若干个程序。 (4)异步性。各个进程在并发执行过程中会产生相互制约关系,造成各自前进速度的不可预测性。而程序本身是静态的,不存在这种异步特征。

操作系统结构 (1)

操作系统是一种大型、复杂的并发系统,为了研制操作系统,首先必须研究它的结构,力求设计出结构良好的程序。操作系统的结构设计有两层含义:一是研究操作系统的整体结构,由程序的构成成分组成操作系统程序的构造过程和方法;二是研究操作系统程序的局部结构,包括数据结构和控制结构。采用不同的构件和构造方法可组成不同结构的操作系统。本节将在讨论操作系统构件之后,全面介绍各种操作系统的构造方法。 1.2.1 操作系统的组件 通常把组成操作系统程序的基本单位称作操作系统的构件。剖析现代操作系统,构成操作系统的基本单位除内核之外,主要还有进程、线程、类程和管程。 1.内核 现代操作系统中大都采用了进程的概念,为了解决系统的并发性、共享性和随机性,并使进程能协调地工作,单靠计算机硬件提供的功能是十分不够的。例如,进程调度工作目前就不能用硬件来实现;而进程自己调度自己也是困难的。所以,系统必须有一个软件部分能对硬件处理器及有关资源进行首次改造,以便给进程的执行提供良好运行环境,这个部分就是操作系统的内核。 由于操作系统设计的目标和环境不同,内核的大小和功能有很大差别。有些设计希望把内核做得尽量小仅具有极少的必需功能,称为微内核(microkernel),其他功能都在核外实现,通过微内核提供的消息传递机制完成其余功能模块间的联系;有些设计则希望内核具有较多的功能,虽然其内部也可划分成层次或模块,但运行时是一个大二进制映像,模块间的联系可通过函数或过程调用实现,称为单内核(monolithic kernel)。操作系统的一个基本问题就是内核的功能设计。微内核结构是现代操作系统的特征之一,这种方法把内核和核外服务程序的开发分离,可为特定应用程序或运行环境要求定制服务程序,具有较好的可伸缩性,简化了实现,提供了灵活性,很适合分布式系统的构造。 一般而言,内核必须提供以下3个方面的功能。 (1)中断处理。中断处理是内核中最基本的功能,也是操作系统赖以活动的基础,为了缩短屏蔽中断的时间,增加系统内的并发性,通常它仅仅进行有限的、简短的处理,其余任务交给在内核之外的特殊用户态进程完成。当中断事件产生时,先由内核截获并转向中断处理例行程序进行原则处理,它分析中断事件的类型和性质,进行必要的状态修改,然后交给内核之外的进程去处理。例如,产生外围设备结束中断事件时,内核首先分析是否正常结束,如果是正常结束,那么,就应释放等待该外围传输的进程;否则启动相应设备管理进程进行出错或异常处理。又如当操作员请求从控制台输入命令时,内核将把这一任务转交给命令管理进程去处理,以接收和执行命令。 (2)短程调度。主要职能是分配处理器。当系统中发生了一个事件之后,可能一个进程要让出处理器,而另一个进程又要获得处理器。短程调度按照一定的策略管理处理器的转让,以及完成保护和恢复现场的工作。由于它是协调进程竞争处理器资源的程序,所以它不是进程而是内核中的一个程序。 (3)原语管理。原语是内核中实现某一功能的不可中断过程。为了协调进程完成通信、并发执行和共享资源,各种原语是必不可少的。通信原语为进程相互传递消息,同步原语能协调并发进程之间的种种制约关系。此外,还有其他原语,如启动外围设备工作的启动原语,若启动不成功则请求启动者应等待,显然,这个启动过程应该是完整的,否则在成为等待状态时,可能外围设备已经空闲。由于设备的操作与硬件密切相关,故通常设备驱动程序等功能都放在内核中完成。 内核是操作系统对裸机的首次改造,内核和裸机组成了一台虚拟机,进程就在这台虚拟机上运行,它比裸机的功能更强大,具有以下特性: (1)虚拟机没有中断,因而,进程的设计者不再需要有硬件中断的概念,用户进程执行中无须处理中断; (2)虚拟机为每个进程提供了一台虚拟处理器,每个进程就好像在各自的私有处理器上顺序地推进,实现了多个进程的并发执行; (3)虚拟机为进程提供了功能较强的指令系统,即它们能够使用机器非特权指令、系统调用和原语所组成的新的指令系统。 为了保证系统的有效性和灵活性,设计内核应遵循少而精的原则。如果内核功能过强,则一方面在修改系统时可能牵动内核;另一方面它占用的内存容量和执行时间都会增大,且屏蔽中断的时间过长也会影响系统效率。因而,设计内核时应注意:

操作系统结构

1.2操作系统结构设计 操作系统是一种大型、复杂的并发系统,为了研制操作系统,首先必须研究它的结构,力求设计出结构良好的程序。操作系统的结构设计有两层含义:一是研究操作系统的整体结构,由程序的构成成分组成操作系统程序的构造过程和方法;二是研究操作系统程序的局部结构,包括数据结构和控制结构。采用不同的构件和构造方法可组成不同结构的操作系统。本节将在讨论操作系统构件之后,全面介绍各种操作系统的构造方法。 操作系统的组件 通常把组成操作系统程序的基本单位称作操作系统的构件。剖析现代操作系统,构成操作系统的基本单位除内核之外,主要还有进程、线程、类程和管程。 1.内核 现代操作系统中xx采用了进程的概念,为了解决系统的并发性、共享性和随机性,并使进程能协调地工作,单靠计算机硬件提供的功能是十分不够的。例如,进程调度工作目前就不能用硬件来实现;而进程自己调度自己也是困难的。所以,系统必须有一个软件部分能对硬件处理器及有关资源进行首次改造,以便给进程的执行提供良好运行环境,这个部分就是操作系统的内核。 由于操作系统设计的目标和环境不同,内核的大小和功能有很大差别。有些设计希望把内核做得尽量小仅具有极少的必需功能,称为微内核(microkernel),其他功能都在核外实现,通过微内核提供

的消息传递机制完成其余功能模块间的联系;有些设计则希望内核具有较多的功能,虽然其内部也可划分成层次或模块,但运行时是一个大二进制映像,模块间的联系可通过函数或过程调用实现,称为单内核(monolithic kernel)。操作系统的一个基本问题就是内核的功能设计。微内核结构是现代操作系统的特征之一,这种方法把内核和核外服务程序的开发分离,可为特定应用程序或运行环境要求定制服务程序,具有较好的可伸缩性,简化了实现,提供了灵活性,很适合分布式系统的构造。 一般而言,内核必须提供以下3个方面的功能。 (1)xx处理。xx处理是内核中最基本的功能,也是操作系统赖以活动的基础,为了缩短屏蔽xx的时间,增加系统内的并发性,通常它仅仅进行有限的、简短的处理,其余任务交给在内核之外的特殊用户态进程完成。当xx事件产生时,先由内核截获并转向xx处理例行程序进行原则处理,它分析xx事件的类型和性质,进行必要的状态修改,然后交给内核之外的进程去处理。例如,产生外围设备结束xx事件时,内核首先分析是否正常结束,如果是正常结束,那么,就应释放等待该外围传输的进程;否则启动相应设备管理进程进行出错或异常处理。又如当操作员请求从控制台输入命令时,内核将把这一任务转交给命令管理进程去处理,以接收和执行命令。 (2)短程调度。主要职能是分配处理器。当系统中发生了一个事件之后,可能一个进程要让出处理器,而另一个进程又要获得处理器。短程调度按照一定的策略管理处理器的转让,以及完成保护和恢

实时操作系统实验

实时操作系统实验报告 专业:10通信工程 学号:20100306110 姓名: 汪洁 指导老师:申屠浩

实验一任务管理实验 实验目的: 1.理解任务管理的基本原理,了解任务的各个基本状态及其变迁过程; 2.掌握μC/OS-II 中任务管理的基本方法(挂起、解挂); 3.熟练使用μC/OS-II 任务管理的基本系统调用。 实验要求与思路: 为了体现任务的各个基本状态及其变迁过程,本实验设计了T0、T1 和T3 三个任务,它们交替运行,如图所示 说明: 在系统完成初始化后,可以先创建并启动优先级最低的TaskStart,由它创 建其他3 个应用任务T0、T1 和T2,之后整个系统的运行流程如下: 1)优先级最高的T0 开始执行,之后T0 挂起自己; 2)然后系统调度选中T1 开始执行,之后T1 挂起自己; 3)接着系统调度选中T2,之后唤醒T0; 4)如此循环 实验程序: #include "includes.h" #define TASK_STK_SIZE 512 OS_STK TaskStk1[TASK_STK_SIZE]; OS_STK TaskStk2[TASK_STK_SIZE]; OS_STK TaskStk3[TASK_STK_SIZE]; OS_STK TaskStartStk[TASK_STK_SIZE]; void Task1(void *data); void Task2(void *data); void Task3(void *data); /* Function prototypes of tasks*\ void TaskStart(void *data); /* Function prototypes of Startup task */

相关文档
相关文档 最新文档