[笔记]《操作系统精髓与设计原理》---(1)操作系统概述

前段时间好好重新看了一遍操作系统,还是有点收获,重新完整了下知识结构,笔记都记在onenote上,有空慢慢搬上来。

4个重要理论进展:
• 进程
• 内存管理
• 信息保护和安全
• 调度和资源管理


进程

  • 一个正在执行的程序。
  • 计算机中正在运行的程序实例。
  • 可以分配给处理器并由处理器执行的一个实体。

三部分组成:

  • 一段可执行的程序
  • 程序所需要的相关数据(变量、工作空间、缓冲区)
  • 程序的执行上下文。

执行上下文又称进程状态,包括:

  • 处理器寄存器的内容,如程序计数器和数据寄存器
  • 操作系统使用的信息,进程优先级、进程是否在等待特定I/O事件的完成。,

一个进程管理方法:

  1. 由操作系统建立和维护进程表,记录每个进程(程序、数据和上下文)分配的存储器区域。表项内容包括进程的存储块地址指针,部分或者全部执行上下文。
  2. 进程索引寄存器包含当前处理器进程在进程表的索引;程序计数器指向该进程中下一条指令;基址寄存器、界限寄存器定义进程占据存储器区域:基址保存开始地址,界限保存大小。程序计数器和所有数据引用相对于基址寄存器被解释,并不能超过界限寄存器的值。

这里写图片描述

线程、进程区别

  • 线程:可分配的工作单元。包括处理器上下文(包括程序计数器、栈指针)和栈中自己的数据区域。
  • 进程:1个或多个线程和相关系统资源(如数据和代码存储空间、打开的文件和设备)的设备。

内存管理

5个基本责任:

  • 进程隔离:操作系统保护独立的进程,防止互相干扰各自的存储空间,包括数据和指令
  • 自动分配和管理:程序根据需要在存储层次间动态分配,分配对程序员透明。无需关系与内存限制有关的问题
  • 支持模块化程序设计:程序员能定义程序模块,并动态创建、销毁模块,动态改变模块大小。
  • 保护和访问控制:必须允许一部分内存可以由各种用户以各种方式进行访问。
  • 长期存储:在计算机关机后长时间保存信息。

操作系统使用虚存和文件系统机制来满足这些要求

  • 文件系统:实现长期存储,在1个有名字的对象中保存信息,对象称为文件file。对操作系统来说,文件是访问控制和保护的一个有用单元。
  • 虚存机制:允许程序从逻辑角度访问存储器,而不用考虑物理内存上可用的空间数量。进程大小不同,处理器在很多进程间切换,很难紧密压入内存中,引入分页系统
    • 分页系统(动态映射硬件):进程由许多固定大小的块组成,称为页。程序通过虚地址访问字,虚地址由页号和页中偏移量组成。进程每一页都可以放置在内存中的任何地方,分页系统提供程序中使用的虚地址和内存中的实地址/物理地址之间的动态映射
    • 消除一个进程的所有页同时驻留在内存的要求。一个进程的所有页都保留在磁盘中,当进程执行时,一部分页在内存中。如果需要访问的某页不在内存中,存储管理硬件检测到,安排载入这个缺页。这个配置称虚拟内存。

程序设计语言的指令都可以访问虚存区域中的程序和数据。

  • 通过给每个进程一个唯一不重叠的虚存空间来实现进程隔离
  • 使用两个虚存空间一部分重叠来实现内存共享
  • 文件可用于长期存储,文件或其中一部分可以复制到许村中供程序操作。

虚存寻址关系:

  • 存储器由内存和低俗的辅助存储器组成,内存可直接访问到,外村则可以通过把块载入内存间接访问到。
  • 地址转换硬件(映射器)处理器和内存间。
  • 程序使用虚地址访问,虚地址将映射成真是地址。如果访问的虚地址不存在内存中,实际内存中的一部分内容将换到外存,然后载入需要的模块。
  • 产生这个地址访问的进程必须挂起。

这里写图片描述


信息保护和安全

在使用时分系统时提出的。

  • 可用性:保护系统不被打断
  • 保密性:保证用户不能读到未授权访问的数据
  • 数据完整性:保护数据不被未授权修改
  • 认证:用户身份的正确认证和消息或数据的合法性。

调度和资源管理

操作系统关键任务:管理各种可用资源(内存空间、I/O设备、处理器),并调度各种活动进程使用这些资源。

资源分配和调度策略考虑三个因素:

  • 公平性:给竞争使用某1特定资源所有进程几乎相等公平的访问机会。
  • 有差别的响应性:可能需要区分有不同服务要求的不同作业类。
  • 有效性:希望获得最大吞吐量和最小响应时间,并在分时系统下,能容纳尽可能多的用户。

多道程序设计环境中进程调度和资源分配的操作系统主要组件:

  • 短程队列,由内存中(一部分在内存中)并等待处理器可用的随时准备运行的进程组成。任何一个进程都能下下一步使用处理器,选择取决于短期调度器(分派器)。常用策略时间片轮转或者分配优先级。
  • 长程队列,等待处理器的新作业列表。操作系统通过把长程队列的作业转到短程队列中,实现添加作业,这是内存的一部分必须分配给新到来的作业。
  • 每个I/O设备都有一个I/O队列,可能多个进程请求同一个I/O设备。等待使用一个设备的进程在设备的队列中排队,同时操作系统决定分配给哪个进程。
  • 如果发生中断,操作系统在中断处理程序入口获得处理器控制权。进程可以通过服务调用明确地请求某些操作系统服务,如I/O设备处理服务,服务调用处理程序是操作系统的入口。只要处理中断或者服务调用,就会请求短期调度器选择一个进程执行。

这里写图片描述


UNIX操作系统

一般体系结构
这里写图片描述

这里写图片描述


linux操作系统

模块结构

单体内核是指在一大块代码中包含了所有的操作系统功能,并作为一个单一的进程运行,具有位移的地址空间。内核中的左右功能部件可以访问所有的内部数据结构。如果对典型的单体式操作系统的任何部分进行了改变,那么在改变生效前,所有模块、例程都必须重新链接、安装,系统必须重新启动。

linux为采用微内核的方法,但由于特殊的模块结构,因此也具有很多微内核方法的优点。
linux的结构是一个模块的集合,可以通过命令自动地加载和卸载,称为可加载模块。
linux被认为是单体内核,但模块结构克服了在开发和发展内核过程中遇到的困难。

可加载两个特征:

  • 动态链接:内核已在内存中并运行,内核模块可以被加载和链接到内核。也可以在任何时刻被断开链接,从内存移除。
  • 可堆栈模块:模块按层次排列,当被高层的客户模块访问时,作为库;当被底层模块访问时,作为客户。

使用insmod和rmmod加载卸载内核模块。

内核组件

这里写图片描述

  • 信号:内核通过信号通知进程。如某些错误,比如被0除错误。
  • 系统调用:进程通过系统调用来请求系统服务。可以分为6类:文件系统、进程、调度、进程间通信、套接字(网络)和其他。
  • 进程和调度器:创建、管理、调度进程。
  • 虚拟内存:为进程分配和管理虚拟内存。
  • 文件系统:为文件、目录和其他相关对象提供一个全局、分层次的命名空间,提供文件系统函数。
  • 网络协议:为用户提供TCP/IP协议套件提供套接字接口。
  • 字符设备驱动:管理向内核一次发送或接收一个字节数据的设备,比如终端、调制解调器、打印机。
  • 块设备驱动:管理以块为单位向内核发送和接收数据的设备,如各种外存。
  • 网络设备驱动:对网络接口卡和通信端口提供管理,他们负责连接到网桥和路由之类的中断设备。
  • 陷阱和错误:处理CPU产生的陷阱和错误,例如内存错误。
  • 物理内存:管理实际内存中的内存页池和为虚拟内存分配内存页。
  • 中断:处理外设中断.

一些linux信号
这里写图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值