computer science

computer software

软件:计算机程序、方法、规则、相关的文档资料以及在计算机上运行的程序时所必需的数据的集合。

程序: 计算机需要遵照执行的一系列指令,它作为一种具有逻辑结构的信息,精确而完整地描述计算任务中的处理对象和处理规则。

方法、规则:通常是在文档中说明并在程序中实现的。

文档:为了便于了解程序所需的阐明性资料。

数据:向一个程序提供的输入。

  1. 特性

    软件是功能、性能相对完备的程序系统。程序是软件,软件不仅仅是程序。

    软件是具有使用性能的软设备。

    软件只有过时而无磨损的信息商品。

  2. 软件分类

    系统软件、支撑软件和应用软件。

  3. 软件和硬件的关系

    硬件正如人的身体,软件就如人的灵魂,缺一不可。电脑由软件和硬件一同组成,你摸得到的物理设备都是硬件,用得到却摸不到的就是软件。

  4. 计算机系统层次结构

    由底层到顶层:硬件系统、系统软件(操作系统、编译系统)、支持软件(数据库管理系统、网络软件)、应用软件(办公集成软件、财务管理软件)。

操作系统

操作系统是所有从事计算机应用、开发和研究的人经常使用的系统软件。

  1. 定义

    管理硬件资源、控制程序运行、改善人机界面、为应用软件提供支持的系统软件。

  2. 作用

    • 各种软硬件资源管理。
    • 提供良好的用户界面。
  3. 处理机管理

    通过进程管理协调多道程序间的关系,解决对处理机实施分配调度策略、进行分配和回收等。

  4. 存储管理

    管理内存资源。主要包括主内存分配、地址映射、内存保护和内存扩充。

  5. 设备管理

    对硬件设备进行管理。主要包括缓冲区管理、设备分配、设备驱动和设备无关性。

  6. 文件管理

    对信息资源的管理,操作系统将这些资源以文件的形式存储在外存上。文件系统的重要概念有文件、磁盘分区和目录结构。

  7. 文件拓展名

    windows 系统以文件拓展名来区分不同类型的文件。

  8. 磁盘分区

    把一个磁盘驱动器划分成几个逻辑上独立的驱动器,这些分区被称为卷。目的:

    • 磁盘容量很大,为便于管理。
    • 安装不同的系统,如Windows和Linux等。

    一个硬盘可以分为磁盘主分区和磁盘扩展分区。

    扩展分区还可以细分为几个逻辑分区。

    每一个主分区或逻辑分区就是一个逻辑驱动器,它们各有盘符。

  9. 目录路径

    绝对路径:从根目录开始,依序到该文件之前的名称。

    相对路径:从当前目录开始到某个文件之前的名称。

  10. 用户接口

    操作系统与用户之间的接口有程序接口和命令接口。① 程序接口:通过 API 调用例行程序实现既定的操作。② 命令接口:通过交互命令方式,对计算机进行操作。

协调机器的活动

介绍操作系统都有哪些概念及其作用。

  1. 进程

    程序的一次执行过程,是程序实体的运行过程,是系统进行资源分配和调度的一个独立单位,其属性会随着时间的推进而改变。

    一个程序可以包含多个进程。

    进程可以描述并发活动,程序则不明显。

    进程执行需要处理机,程序存储需要介质。

    进程有生命周期,程序是永存的。

  2. 进程的状态

    挂起状态:进程正在等待系统为其分配所需资源而暂未运行。

    就绪状态:进程已获得所需资源并被调入内存,它具备了执行的条件但仍在等待获得处理机资源,以便投入运行。

    运行状态:进程占有处理机且正在运行的状态。

  3. 竞争控制

    操作系统的一个重要任务是将机器的各种资源合理分配给系统中的各个进程。

  4. 临界资源

    指计算机系统中在同一个时刻只能由一个进程使用的资源。如硬件资源中的打印机、磁带机等,软件资源中的变量、表格、队列等。对临界资源的使用采用互斥方式即一个进程使用完之后,另一个进程才能使用。

  5. 信号量

    解决临界资源访问的另一种方法是使用测试并置位指令,它在许多机器语言里可用。这条指令要求CPU检索一个标志的值,记住它,然后置位该标志,所有工作都在一条机器指令内完成。一个正确实现的标志称为信号量(Semaphores)。

  6. 死锁

    指多个进程因竞争资源而造成的一种僵局,若无外力干预,这些进程都将永远不能继续运行。

    例如,一个进程可能已有对打印机的访问权,同时它还在等待访问CD播放机,而另一个进程已经获得CD播放机的访问权,却在等待访问打印机,那么这两个进程就会陷入死锁,无限制等待对方手上的资源。

  7. 死锁必要条件

    互斥条件:存在对不可共享资源的竞争。

    请求和保持条件:一个进程接受了某些资源后,稍后还将请求其他的资源。

    不剥夺条件:进程已获得的资源,在使用完之前,不被外力剥夺。

    环路等待条件:进程推进顺序不当,出现互相等待其他进程已获得资源。

    因此,我们解决死锁的方法是避免任何一个必要条件成立。例如互斥条件有个时间限制。

  8. 操作系统的计算思维

    操作系统的计算思维可以用很多生活中的例子来解释。包括时间管理、空间管理以及设计哲学。

  9. 时间管理

    你可以发现,你可以在电脑上边玩 QQ 边听音乐,就好像电脑可以同时干两件事一样。其实一个处理机在一个时间段只能干一件事,但是它把 QQ 进程和音乐进程切割为一片一片,快速地执行每一片,这样你就感觉不到间隔了。

    正如期末复习一样,你要同时复习好几门课,但是为了高效率,你不会一天只复习一门功课,你会分割时间交叉复习,这样也许效率更好。吃饭排队的时候适合复习英语单词,安静的时候适合复习数学,暴躁的时候适合睡觉。

    又如做菜,你要做两个菜,做菜步骤有三:洗菜、切菜和炒菜。那么你炒第一个菜的时候可以将第二个菜先泡着,这样的话时间就省下来了。

  10. 空间管理

    人的大脑有效记忆是有限的,因此我们会将重要的事记住,例如银行卡密码,因此大脑就如电脑的内存,找到信息的速度是最快的。暂时不用的信息可以存在笔记上,就好比电脑的磁盘,找的时候自然没那么快。

  11. 设计哲学

    如何确保住房作为人类生存的必需品,其分配过程能够兼顾效率和公平?

    • 房地产市场中个人按照经济能力和自身条件选购相应住房,实现资源合理分配。正如多级反馈调度算法中,进程按照优先级进行排队分时使用CPU。
    • 银行对首次购房者提供相对优惠的贷款政策,帮助无房者满足基本住房要求。正如新提交进程排在最高优先级的队列中,保证所有进程能够得到快速响应。
    • 政府调控中对购置多套房产的限购措施,可以让更多人有机会购房,防止恶意炒作,提高住房资源分配的公平性。正如当进程用完CPU一个单位计算资源后,会被降级到更低优先级队列,避免少数程序长期霸占CPU,让更多的进程有机会参与使用CPU。