当前位置:   article > 正文

操作系统教程 ( Linux) 版 学习笔记_自己话讲._现在linux主要使用在pc机和嵌入式,或者一些小型企业的服务器;而unix垄断着大型企

现在linux主要使用在pc机和嵌入式,或者一些小型企业的服务器;而unix垄断着大型企

计划大纲

日期计划进度完成情况//TODO
316 7 章节书, 看试卷大题
1其他章节, 概念, 对应试卷题



银行家算法 pv
2填空选择, 查缺补漏.
3pv / 查缺补漏 / 重做试卷.晚上加班, 课本概念理一遍.
试卷过一遍, 再按需求看 pv , 银行家
记得看书哦
4上午下午都是做试卷晚上或 5 号约人讨论题目
5

备注

自己理解后描述一遍概念, 不应超过全书 5% , 全文不要超过 2.5w 字.
  • 1

全文 24,000 字 阅读 40 分钟左右.

第 1 章 操作系统概述

1.1 操作系统的基本概念

计算机系统组成:
硬件(Hardware):CPU、存储器、输入/输出设备
软件(Software):是存储、运行在存储器、CPU中的程序. 具有一定的抽象性,难以理解。

软件一般分为:
系统软件:用于对计算机的软硬件资源进行管理并为应用程序提供服务的程序集合,如编译程序、解释程序、操作系统等;操作系统(Operating System)是最基本的系统软件,是最接近硬件的第一层软件,它负责管理计算机系统的各种软硬件资源,并为其它软件的运行提供支撑
支撑软件:运行于系统软件之上,为应用软件提供开发环境和手段,以方便于应用软件系统的开发,如各种集成软件开发环境和各种中间件(Middleware)等
应用软件:是为了完成某种特定应用功能的专用程序,如Office办公软件,它运行在系统软件或系统软件和支撑软件所构筑的软件平台之上。

裸机 (Bare Machine) : 计算机系统中的硬件常被称为裸机

虚拟机 : 由计算机硬件和操作系统所组成的计算机系统称为“虚拟机”,它具有比裸机更强的功能和更好的易用性。

image-20200103211805321

1.2 操作系统的基本功能

操作系统管理的对象中,硬件资源有CPU、内存、寄存器、堆栈、辅助存储器、输入/输出设备等,而软件资源有系统软件、应用软件、数据等。

操作系统的功能包括如下五部分:处理机管理、存储器管理、设备管理、文件管理和用户接口。

1.2.1 处理机管理

处理机管理就是对CPU进行管理, 为了方便处理机的调度、分配和管理,引入了进程和线程的概念

处理机的管理最终可以归结为对进程的管理,包括进程管理、同步、互斥、通信和死锁等内容。

1.2.2 存储管理

存储器管理的对象为主存储器,简称为内存或主存

程序若要运行需首先装入内存,而内存大小是有限的.涉及到 用户程序如何申请到内存?申请到内存后又怎样从外存(磁盘等)装入内存?具体装入到内存的哪个位置等?若与内存中已有的程序发生冲突如何处理?这些功能应由软件自动实现自动处理, 减轻用户负担. 而操作系统中的存储器管理模块就是干这个的。

存储器管理的主要任务是内存的分配和回收、内存扩充、存储共享与保护、地址变换等,并以提高内存的利用率、扩大内存的相对容量、为用户提供透明服务为目的.

(1)内存的分配和回收:为要装入内存的程序分配内存空间,在程序运行结束后要释放所占用的内存资源,并由系统进行登记,以便分配给将要运行的程序。
2)内存扩充:解决分配给作业或进程的内存空间不足问题,达到小内存运行大程序的目的,同时也为了提高进程的并行性,使系统资源得以充分利用,均需要对内存的容量进行相对扩充。操作系统主要采用软件技术(如覆盖技术、交换技术和虚拟技术等)对存储系统进行管理,利用大容量的辅存来弥补内存空间的不足(详见第5章存储管理)。

(3)存储共享与保护:这里有两方面含义:

一是指存储共享,即当多个程序包括一个公用程序段时,这个公用程序段在内存中仅存一个副本,为一共享程序段;存储管理要解决这一公用程序段的共享问题。

二是指存储保护,即内存中存在多个运行程序时,存储管理要保证每个用户程序只能访问自己的存储空间,不能对驻留在内存中的操作系统等系统软件或其它应用程序造成破坏。

存储保护通常需要硬件的支持,常用的方法有界限地址寄存器、存储保护键等。

(4)地址变换:当程序从外存装入内存时需将程序中每条指令的地址(相对地址或逻辑地址)转换为内存中的地址(物理地址)。该过程可以在程序装入内存时完成(静态地址变换),也可以在程序执行时进行(动态地址变换),分别称为静态或动态地址重定位,通常需要硬件的支持。

1.2.3 文件系统

计算机系统所处理的对象为程序和数据;这些程序和数据通常以文件的形式存放在磁盘、光盘、磁带等(真的, Google 现在还在使用呢. 毕竟便宜, 好用)外部存储器上,需要时再装入内存。[ 程序 = 算法 + 数据结构] [软件 = 程序 + 软件工程 ] [ 软件公司 = 软件 + 商业模式 ]
存有大量的系统软件、应用程序和数据等,需要解决的问题是如何对文件的查找和透明存取[ 用户感知不到 ].
实现对文件的“按名存取”是操作系统所要完成的另一项重要功能
文件管理还应提供文件的共享和保护、文件操作等功能;

文件的共享对于多道程序系统、多用户系统或多任务系统是相当重要的,它使得被多个程序共享的对象在外存上仅保留一个备份,从而提高了外部存储器的利用率;

文件保护功能用于对外部存储器中的文件进行保护,防止文件受到其它用户非法读取或破坏;

文件操作为用户对文件进行操作提供手段,如文件的读、写、复制、删除等。
磁盘的容错功能也是由文件系统提供,以保证所存储文件的可靠性。

1.2.4 设备管理

设备管理是指计算机中除了CPU和内存以外的I/O (输入/输出)设备的管理
I/O设备也称为外部设备,其种类繁多,功能差异很大,使用方法各异。
设备管理的主要任务就是通过驱动程序和控制程序自动实现对I/O设备的管理和调度以及数据传输,使I/O设备的具体细节对用户而言是透明的
设备管理的另一任务就是通过中断技术DMA(Direct Memory Access)技术、通道技术缓冲技术等使CPU与外部设备能够并行、高效地工作. 这些技术解决高速CPU与低速外设间速度不匹配的矛盾,从而提高系统资源的利用率

你问有啥用? cpu 运行的贼快, 外设速度贼慢: 天上一天地下一年的感觉.
设备管理应包括如下功能:

响应用户进程提出的I/O请求;

为用户进程分配I/O设备;

对系统的I/O设备进行管理;

控制CPU与外设间的数据交换。

1.2.5 用户接口

操作系统作为计算机系统资源的直接管理者,应提供相应的手段( “API” )供用户使用,以使用户可以方便地使用系统的各种资源,这种手段就是用户接口
用户接口通常有两种,操作级接口 [ 一种供用户通过键盘和鼠标直接对计算机进行操作 ];另一种是编程级接口 [ 供用户在编程过程中使用 ];这两种接口有三种体现形式:命令接口、图形接口和编程接口。 [ 将 or 已经流行的语音操作, 触摸操作, 本质讲和 GUI 操作, 编程接口, 命令接口没差. 也是学习操作系统发展的原因 : 抽象化技术.]
命令接口比如 :

联机用户接口 :用户通过显示器和键盘逐条键入完成想要的操作[ 命令 ]

脱机用户接口 : 如批处理等 [ 命令也可以通过编辑程序录入到计算机内,形成一个文件,系统通过运行这个文件来完成指定的功能 ]

GUI [ 图形接口 Graphics User Interface ] 为用户提供了功能图标或菜单并显示在显示器上,用户若想完成某项功能就可以用鼠标点击相应的图标或者选择相应的菜单( 俗称"拖拉拽" ),如windows xp / 7 / 10、Linux等均提供这样的方式。

操作系统通过系统功能调用来实现它的编程接口。开发软件时,用户通过编辑程序将系统功能调用嵌入到程序中来访问系统的软硬件资源,功能实现的具体细节当然对 User 而言是透明啦.

实际上命令控制界面也是通过系统功能调用来实现的。每个系统调用具有不同的功能号,对于不同的操作系统有不同的系统调用,一般有几十至几百条。

系统调用可分为如下几类:设备管理、文件管理、进程管理、存储管理、线程管理。 ( 操作系统底层实现各种"轮子", 各种"应用软件"调用系统"轮子"实现业务需求, 进行"造车". 中间涉及设计模式, 软件工程, 算法, 数据结构等其他 )

总之操作系统设计的目标之一就是为用户提供直观、简单、高效、易用、透明的用户接口。

1.3 操作系统的发展

1.3.1 手工阶段 1946 年, 电子管电脑. 一代
1.3.2 早期批处理 1950-1960, 晶体管取代电子管,进入二代.

​ 提出了脱机批处理的概念 [ 输入/输出工作在一台单独的计算机(称为卫星机或外围处理机)上进行,而程序运行在另一台主处理机上 ]

此阶段系统称为单道批处理系统, 也称为联机批处理系统.

image-20200103223335239
1.3.3 多道程序系统

60 年代出现了对计算机技术发展具有重要影响的两种技术:通道技术和中断技术

image-20200103223431083
1.3.4 分时系统

​ 为了改善批处理系统的性能,加上因为当时的计算机非常昂贵,希望一台计算机可以供多个用户同时使用,所以出现了分时操作系统。这种系统的计算机连接多个终端用户,各用户通过终端按一定的时间片轮流占用CPU等系统资源;相对于较慢的人工干预过程而言,对于较快速的计算机来讲用户几乎感觉不到系统的响应延迟

1.3.5 实时系统 65 年左右, 广泛被工业, 军事使用, 系统快速发展. 进入第三代.

实时系统 : 指系统能及时(或即时)相应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行

1.3.6 通用操作系统

通用操作系统 : 可以同时兼有多道批处理、分时、实时处理的功能,或其中两种以上的功能。

例如,将实时处理和批处理相结合构成实时批处理系统。在这样的系统中,它首先保证优先处理任务,插空进行批作业处理。通常把实时任务称为前台作业,批作业称为后台作业。将批处理和分时处理相结合可构成分时批处理系统。同样,分时用户和批处理作业可按前后台方式处理。

65 年左右, 国际许多大厂开始造操作系统的轮子, 试图完成 “功能齐全、可适应各种应用范围和操作方式变化多端的环境” 的操作系统, 最终因为系统庞大复杂, 在解决其可靠性、可维护性、可理解性和开放性等方面都踩了无数坑, 没爬出来. 当然有极少数成功的, 比如你听过的 UNIX 操作系统.

这里聊聊"野史" :

UNIX 和 linux 啥区别 ?

Unix于1969年由贝尔实验室开发出来,使用至今已变更了很多个版本。
目前主流的Unix系统有三种,分别是AIX、HP-UX、Solaris,这些Unix系统互不兼容。
Linux于1991年由芬兰大学生Linus开发出来,是一个类Unix系统,但是其代码不源自任何Unix版本,完全不是Unix的一个分支,而是一个开源版的模仿。
现在Linux主要使用在PC机和嵌入式,或者一些小型企业的服务器;而Unix垄断着大型企业的关键性应用领域。
  • 1
  • 2
  • 3
  • 4

linux和CentOS是什么关系?

1、linux和CentOS是什么关系?

    CentOS是Linux众多得发行版本之一,linux有三大发行版本(:Slackware、debian、redhat),而Redhat有收费的商业版和免费的开源版,商业版的业内称之为RHEL系列,CentOS是来自于依照开放源代码规定而公布的源代码重新编译而成。可以用CentOS替代商业版的RHEL使用。两者的不同,CentOS不包含封闭源代码软件,是免费的。

2、CentOS和RHEL是什么关系?

     软件在发行的时候,有两种方式。一种是二进制的发行方式,另外一种是源代码的发行方式,rhel无论是哪一种发行方式,你都可以免费从网上获得。 RHEL 一般都提供源代码的发行方式但如果你使用了他们的在线升级或咨询服务,就必须要付费。

    CentOS 就是将 RHEL 发行的源代码从新编译一次,形成一个可使用的二进制版本,由于 LINUX 的源代码是 GNU,所以从获得 RHEL 的源代码到编译成新的二进制,是合法。只是 REDHAT 是商标,所以必须在新的发行版里将 REDHAT 的商标去掉。CentOS 可以得到 RHEL 的所有功能,甚至是更好的软件,但 CentOS 并不向用户提供商业支持,当然也不负上任何商业责任。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

聊完野史, 继续开始学习.

1.3.7 多种操作系统并存

80 年代, 随着大规模集成电路制造技术的发展, 迎来了"个人计算机时代".

1981 年 8 月微软 [ MicroSoft ]公布了DOS1.0版本的运行在8086微处理器环境下的单用户操作系统;随后CPU由8086、80286发展到80586乃至奔腾系列,Windows 操作系统也随之迅速发展到 Window NT、Window 2000和Window XP

1.4 操作系统的类型

有的用不就好了, 干嘛这么多操作系统? 因为不同时期产生了不同种类的操作系统,以满足该时期特定的硬件条件下用户对计算机的使用需求;

同时针对不同的应用场合,也开发了相应的操作系统以满足用户的特殊需求。下面讲讲常见操作系统优缺点, 任君选择.

1.4.1 批处理操作系统

​ 为了提高CPU的利用率,引入了多道程序设计技术, 从此批处理操作系统由单道批处理发展成多道批处理.

多道程序设计 [ Multiprogrammin 内存中同时装入多个"作业",多个"作业"通过一定的调度算法轮流占有CPU,使CPU 尽量不停工作,提高利用率 ]

1.4.2 分时操作系统

分时操作系统 : 按时间片将CPU轮流分配给系统内的每个程序。 [ 时间片 : 将规定的CPU时间划分成若干个时间段,每个时间段称为时间片 ]

​ 当该时间片选择合理或计算机的速度足够快时,用户或程序并没有感觉到其它用户或程序的存在,仿佛自己的 moment, 独享计算机系统的所有资源,然而实际上却是 N 个用户或程序轮流地使用计算机。

​ 分时操作系统具有多路性、独立性、及时性、交互性等特征, 是一个联机(On-line)、多用户(Multi-user)、交互性(Interactive)的操作系统

1.4.3 实时操作系统

​ 在设计上首先要保证它的实时性和可靠性,其次才是系统效率。

它常有两种类型:实时控制系统实时信息处理系统

实时控制系统 : 能够实时采集测量数据,并对数据进行实时加工、处理和输出. 这种系统主要用于军事和工业生产过程的自动控制。

实时信息处理系统 : 对用户的请求及时做出响应,并能及时修改、处理系统中的数据. 主要用于银行业务、订票系统的实时事务管理。

1.4.4 通用操作系统

通用操作系统 : 在三种基本类型的操作系统基础上发展的""具有多种类型操作系统特征"的操作系统

[ 回顾下"三种基本类型" : 批处理、分时和实时操作系统 ]

1.4.5 个人计算机操作系统

​ 这类操作系统具有虚存、并发、多任务、联网等特征或功能.

比如 : 这类操作系统有DOS、Windows 7/10 ,Linux, MacOS等。

1.4.6 嵌入式操作系统

嵌入式系统 : 以应用为中心,软硬件可裁减,能够满足应用系统对功能、可靠性、成本、体积、功耗等综合性要求的专用计算机系统. “基于实际情况阉割版的计算机系统”. [ 这种"基于实际情况进行优化"的思想, 在算法题中常出现, 也是各种算法的特性 ]

嵌入式操作系统 : 运行在嵌入式系统环境中,对整个嵌入式系统及其操作、控制的对象进行有效管理的系统软件。

分为

①强实时性嵌入式操作系统,如WindRiver公司的VxWorks、ISI的pSOS、ATI 的Nucleus等

②弱实时嵌入式操作系统,移动电话、机顶盒等。

过去,现在以及未来将在工业控制, 交通管理, 信息家电, 家庭智能管理, POS网络, 环境工程与自然, 机器人, 机电产品应用, 移动互联网等领域持续发力.

1.4.7 网络操作系统

网络操作系统 : 运行于计算机网络环境下,按照网络体系结构协议标准开发的操作系统。

利用局域网低层提供的数据传输能力,为高层网络用户提供通信服务以及资源共享等功能,

网络操作系统具有多用户、多任务功能,网络用户只有通过网络操作系统才能享受计算机网络提供的各种服务。目前流行的网络操作系统有Windows NT、Unix、Linux等。

[ OS/2是由微软和IBM联合研制,分为微软的Microsoft OS/2 NT与IBM的IBM OS/2。由于双方在协作后来不欢而散,IBM继续向市场提供先前的OS/2版本;而微软则把OS/2 NT改名为Windows NT]

unix设计时为了节约硬件成本,采用c/s,很重视网络,bsd更是支持全套TCP/IP协议,linux则把网络作为内核6大模块之一.

1.4.8 并行操作系统

​ 并行计算机系统咋工作 ? 一般包括并行工作的多台处理机,这些处理机经总线或高速通信网络系统连接起来,机间通过共享内存、收发消息等方式进行通信,各台处理机上可以运行不同的进程或线程,真正实现多进程(线程)的并行执行;这种系统的组成硬件一般要求相同,并由统一的全局操作系统进行管理,故也称为紧耦合系统

目前较成熟的并行计算机系统有 SMP (Symmetrical Multi-Processors对称多处理机系统 ) 和 MPP (Massively Parallel Processors 大规模并行处理系统 ),其中对称多处理器操作系统是较为成熟的一种并行操作系统。

1.4.9 分布式操作系统

分布式操作系统 : 运行在分布式系统环境下的操作系统

分布式系统(distributed system: 是一些独立计算机的集合,这些计算机通过通信网络等手段连接起来,并由分布式操作系统来统一协调管理,用户在本地计算机上就可以透明地使用分布式系统中的各种资源,获得比单机系统更强的处理能力。

分布式系统是建立在计算机网络基础之上的松散耦合系统,而计算机网络中的设备可以是异构的,所以分布式系统环境下的资源管理是相当复杂的,

分布式系统的功能之一是能够同时处理多个任务(或一个任务的多个子任务),这些任务被分配到多台计算机上完成,这就涉及到任务分派;任务分派过程中尽量能充分发挥每台计算机的效率,并使它们承担与其计算能力相称的运算量,此功能称为负载平衡;当运行某个进程的计算机出现了故障,或者其它计算机上的计算资源更适合该进程运行,这个进程就需要迁移到另外一台计算机上来运行,进而分布式操作系统要具有进程迁移功能;此外,分布式操作系统还要完成分布式进程的同步与控制、计算机间的进程通信等功能。

集群系统(cluster system)是分布式系统的一个典型例子,它通过低档的计算机、网络互联设备和集群操作系统构造出性能相当于超级计算机的集群系统。

到此, 可能不懂"分布式", "集群"啥区别? 且听我娓娓道来:

分布式是应用部署在不同的服务器上,每个服务器上部署的应用称为节点。节点特别多的时候,为方便管理将多个节点划分成一个组,即集群。也可以这么理解:集群是包含很多小节点的大节点。应用多个节点或多集群的部署方式叫做分布式。

集群是个物理形态,分布式是个工作方式。

分布式:不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题集群:同一个业务部署在多台机器上,提高系统可用性
  • 1
  • 2
  • 3
  • 4
  • 5

啥? 还不懂 ?

大白话讲 : 小饭店原来只有一个厨师,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,这两个厨师的关系是集群。

为了让厨师专心炒菜,把菜做到极致,又请了个配菜师负责切菜,备菜,备料,厨师和配菜师的关系是分布式,一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群.

1.4.10 多媒体操作系统

​ 传统的操作系统管理的对象是普通的数字和字符等,而多媒体操作系统所管理的对象除包括这些具有明显的结构化特征的数据信息外,还要能够处理声、图、文字等多媒体数据以及一些其它半结构化或非结构化信息;这些多媒体数据信息量大,属于海量储存;而且多种媒体数据间往往存在一定的联系,处理多个数据流的多个进程常常需要同步,并要求在限定的时间内完成,如视频点播 (Video On Demand, VOD)、视频会议等。

这种所处理对象的特殊性要求多媒体操作系统在进程调度、数据的组织和存取、磁盘管理和调度等方面不同于传统的操作系统。

1.5 操作系统的基本特征

​ 操作系统均具有并发、共享、虚拟、异步四个基本特征

其中并发和共享是操作系统最基本的特征,其它特征( 虚拟,异步等等 )都是以它们为前提的

1.5.1 并发性

​ 并发 ( Concurrence) : 是指两个或多个事件在同一时间间隔内发生

​ 并行 : 是指两个或多个事件在同一时刻同时发生

1.5.2 共享性

共享 ( Sharing ) : 指系统资源可供内存中多个并发执行的程序同时使用,目的是提高系统资源的利用率。

系统资源 : 指CPU、内存、数据和各种外设等。

资源共享有两种方式:互斥共享和同时共享 . [ 互斥共享

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/655046
推荐阅读
相关标签