文章目录

  • 1 操作系统的系统需求
    • 1.2 软件系统的需求分析
    • 1.2 操作系统的功能性需求
      • 1.2.1 OS的功能性需求
        • 1.2.1.1 **计算机用户需要的用户命令**
        • 1.2.1.2 **应用软件需要的System Call(系统调用)**
    • 1.3 OS的非功能性需求
    • 1.4 OS对硬件平台的依赖

1 操作系统的系统需求

1.2 软件系统的需求分析

人们从软件系统的外部对软件系统提出的诸多期望

  • 软件系统能够提供的服务;
  • 软件系统在提供这些服务时,需要满足的限制条件;
  • 软件系统具有适应某些变化的能力;

可以看出来,系统需求的第一点,是后两点系统需求赖以生存的基础,所以我们称之为软件系统的功能性需求,后两类则是非功能性需求

1.2 操作系统的功能性需求

1.2.1 OS的功能性需求

  • 1.2.1.1 计算机用户需要的用户命令

用户需要通过一些指令来达成操作硬件或者是操作系统提供的功能,那么,由OS实现的所有用户命令所构成的集合常被人们称之为OS的 Interface(用户接口),有时候也被称之为命令接口。

命令的表示形式一般分为三类:字符形式,菜单形式,图形形式
命令的使用方式一般分为两类:脱机使用方式(不在系统控制下),联机使用方式(在系统控制下)

  • 1.2.1.2 应用软件需要的System Call(系统调用)

这个就很差熟悉啦,不管是C++,JAVA,Python, 我们都见过各种各样语言本身为我们提供的一些封装好的接口。与这些接口类似,在这些接口内部,很有可能也使用了系统本身的接口。 由OS实现的所有系统调用所构成的集合被称之为 程序接口 或 应用编程接口(API),在应用软件运行过程中可以引用的系统服务

常见的两种API:POSIX.1, WIN32 API

某种意义上来说,程序接口对于一台计算机来说,它就是一台虚拟计算机,它包含了一组抽象概念以及这组抽象概念相关的系统服务。

1.3 OS的非功能性需求

相对于功能性需求,我们更多的是讨论OS的非功能性需求。

  • 性能(效率)
    这是我们目前一直在追求的一项指标,通过不断地优化来达成这一目标。那么性能具体表现在哪些地方呢?

最大化OS的吞吐量(throughput):单位时间里系统完成的任务
最小化响应时间(response time):通常,系统在接收到我们的命令时(如鼠标点击),并不是立即执行的,而是采用中断式。
在分时系统中,要尽量满足接纳尽量多的用户:在硬件系统允许的情况下,不要因为操作系统而限制我们的用户数。尽量让操作系统配合我们的硬件设施。

  • 公平性
    在我们设计出来的系统调度算法也好,系统本身也好,我们要考虑到整个系统对于所有类型的应用的公平性。不能偏袒与某一类型的应用,而应该一视同仁。

  • 可靠性

  • 安全性

  • 可伸缩性(可配置性,可扩展性):能够适应新的外部设备的增长

  • 可移植性

1.4 OS对硬件平台的依赖

为了实现操作系统的功能性与非功能性的需求,我们应该在哪种硬件平台下实现呢?例如,我们做分时系统,那么我们的硬件要求中,计时器就是必不可少的硬件要求。其他常见的还有输入/输出设备,CMA中断机制,特权指令,以及内存保护机制等等等。。。
OS中的很多原理,很多算法,必须由这些硬件来进行支撑

系统功能性/非功能性需求相关推荐

  1. 为什么非功能性需求很重要?

    不要脱离实际环境 有时,我们会因为读到一篇文章或一本书,或者看到一个感觉不完善的介绍而变得异常偏执.在每种情况下,人们只讨论一些技术.解决方案和选项的某些方面,而忽视了一个至关重要的问题:非功能性需求 ...

  2. 系统设计中的非功能性需求

    当程序员的时候更多的注意功能性需求,但是作为一个架构师和程序员的主要区别之一就是要要满足系统的非功能性需求,包括如下: 1.高可扩展性 App或者网站的访问量弹性很大,刚开始的时候访问量可能比较小,随 ...

  3. 非功能性需求设计:常见的质量属性有哪些?

    1. 性能 如:单位时间内完成的工作量的度量: 必须满足的截止期限 主要有3个响应度量 (1)吞吐量:应用程序在单位时间内必须执行的工作量: (2)响应时间:应用程序处理一个请求的延迟时间: (3)死 ...

  4. 嵌入式系统的功能性指标及非功能性指标

    嵌入式系统是以应用为中心.以计算机技术为基础.软件硬件可裁剪.适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统.嵌入式系统主要由嵌入式处理器.相关支撑硬件.嵌入式操作系统及应用软件 ...

  5. 影响架构决策的非功能性需求

    英文原文:Non-functional Requirements in Architectural Decision Making 本文由<IEEE Software>杂志首发,现在由In ...

  6. 什么是功能性需求和非功能性需求

    需求定义: 需求(requirement)就是系统(更广义的说法是项目)必须提供的能力和必须遵从的条件. 需求分类: (1) 在一般使用中,需求按照功能性(行为的)和非功能性(其它所有的行为)来分类. ...

  7. 非功能性需求_更好的开卡,来聊聊非功能性需求

    工作这么几年来,见得最多的场景是 QA 小伙伴满办公室追着开发报 bug,有时候开发会不乐意,"当时可没说要 XXX,要做 XXX." 好像 QA 小伙伴永远比开发多一点心眼,即使 ...

  8. 当开发人员遇上非功能性需求

    在开发产品时,你是否考虑过关注功能性需求与非功能性需求的工作量?如果没有,那么你可能应该关注下了,本文将告诉你为什么. 作者 | Chris Horsnell 译者 | 梁蕊 责编 | 仲培艺 出品 ...

  9. 软件开发的非功能性需求

    The functional requirement is describing the behavior of the system as it relates to the system's fu ...

最新文章

  1. 日常刷python总结
  2. fpm制作mysql rpm包_fpm制做mysql-5.6.33 rpm包
  3. Oracle Golden Gate 系列十五 -- GG Trails 说明
  4. C++ struct constructor
  5. End to End Sequence Labeling via Bi-directional LSTM CNNs CRF
  6. session,cookie和token,以及负载均衡
  7. 【JEECG_3.7.1】Online树控件的使用
  8. uclinux 嵌入式linux,嵌入式操作系统uCLinux
  9. Spark源码分析之DiskBlockMangaer分析
  10. 【AIX】AIX 开机自动挂载NFS共享
  11. open表和closed表_什么是左外连接?左外连接在工作表查询中的应用
  12. JAVA收到网络报文的IP是::1,怎么回事?
  13. 川崎机器人示教盒维修_阳江市川崎机器人示教器维修中心
  14. Linux-3.10-x86_64 内核配置选项简介
  15. 车道线检测预处理(1)------ 融合白线黄线+高斯
  16. 2020-12-18
  17. ccf 命令行选项 java,DiskPart 命令行选项
  18. 数据智仓功能介绍(一)
  19. 64位Ubuntu系统安装Chrome浏览器
  20. coco2dx 游戏小包上架教程

热门文章

  1. 《重构-改善既有代码的设计》第三章(上)
  2. GVRP-LNP-VCMP讲解
  3. 2020我也当了面试官-java面试题之一
  4. HQPlayer常见问题及解决方案
  5. 简历模板哪里找?这几个免费网站一定要收藏
  6. SQL Server 2012数据库应用与开发教程速成笔记
  7. mysql 立方根函数_Java实现牛顿迭代法求解平方根、立方根
  8. 描述对未来计算机的畅想用英语作文,一篇关于‘畅想未来‘的英语作文
  9. springCloud-Eureka自我保护模式
  10. NLog NETCore 3.0 Porting