操作系统(Operating Systems)学习心得

Operating Systems: Three Easy Pieces__读书摘要 原书链接:Operating Systems: Three Easy Pieces 介绍 1.学生与老师的对话 这一段主要讲学生应该如何学习。 听过->忘了 看过->记得 做过->理解 2.介绍操作系统 本书是给知道操作系统怎么运行的人阅读的。 当程序运行起来的时候,发生了什么? 程序跑起来的时候只是做一件非常简单的事情:它执行指令。 每秒几百万次的执行,处理器从内存中取指令,解码这条指令,执行这条指令。 执行完当前这条指令后,处理器移动到下一条指令,直 阅读详情

学校开设了操作系统课程,本文为该课程的学习心得。。

Chapter 1
OS- Interface to hardware
Keep in mind the breadth of systems
-Mainframe
-Personal Computer
-Mobile Platforms
图1.1

操作系统,利用硬件来处理进程,提供服务器和用户的系统,管理硬盘(secondary memory)和I/O驱动。

    图1.1描述上层组成,每一个进程的功能是和memory交换数据,为达到这个目的,需要两个中心寄存器:MAR( memory address register)标注下一个将要读取的指令地址;I/OAR 
存贮模型包括一串连续地址,每一个地址都指向一条指令或是数据,I/O模型从外部读取数据并传送到进程和memory中,反之亦然。
一个程序包括一系列的在内存(memory)中的指令,分为取指和执行两部。

**Interrupts 中断**
Provided to improve processor utilization,中断可以提高进程利用率。
一般来说,I/O的读写速度要慢于进程,如果进程要给一个打字机用指令循环传输数据的话,  每写一个运算符,进程必须等待I/O完成气任务;降低等待时间,就能够提升进程利用率了!
举一个具体的栗子吧!假设有一台1GHz的电脑可以粗略的每秒钟执行1000000000条指令, 一般的硬盘每分钟7200转,转速是4ms,是进程处理速度的4百万分之一。

图2·

   中断指令添加在指令循环中,处理器会检查是否由中断发生,如果没有中断,处理器会进入读取阶段,一般来说只会检测到自然中断。比如我们的栗子:在检测I/O 模型时中断,可能分出新的程序来为I/O写更多的数据,当中断处理完成时,处理器可以执行用户的程序在中断指针那个位置。
   ![图三](https://img-blog.youkuaiyun.com/20170517210155915?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGVvX3F1ZWVm/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
   在中断处,处理器忙于执行其他指令在I/O操作在运行时。由图三,用户的项目收到一个指向调用系统WRITE的指针,I/O被唤醒进行写的操作,操作完成后“话筒”传回用户程序,继续执行,当再次想要调用I/O时,发现I/O 繁忙,只能等待I/O,当外部驱动(I/O)可以服务时,I/O模型为那个外部装置给用户发送中断请求信号。

   Memory Hierarchy
   major constraints in memory
       * amount
       * speed
       * expense

内存必须和处理器保持联系。
对内存的消耗一定合理并和其他组件有关。
图4

存储器层级
从下向上:
减少消耗比特
增加能力
增加传输时间
减少由处理器访问内存的成本

Principle of Locality局部性原理
- Memory references by the processor tend to cluster
(由处理器调用的内存倾向于集群)
-Data is organized so that the percentage of accesses to each successively lower level is substantially less than that of the level above
(数据组织,先后访问每一个低水平的比例大大低于上述水平)
-Can be applied across more than two levels of memory(可以在多余两个内存上存贮)

Cache Memory高速缓冲存储器
-不可见
-与其他存储器管理的硬件相互作用
-处理器必须链接存储器至少通过一个指令循环
-处理器执行受内存循环的时间限制
-利用区域原则,又小又快的存储器。

I/O Techniques
I/O 操作包括以下三个技术:
Programmed I/O 程序化I/O
interrupt-Driven I/O 中断控制I/O
Direct Memory Access (DMA)直存贮

Interrupt-Driven I/O Drawbacks
* Transfer rate is limited by the speed with which the processor can test and service a device
传输速率受限于处理器的速度可以测试和服务设备
* The processor is tied up in managing an I/O transfer
处理器是绑在一个I / O管理传输
每一个I/O传输都由一系列的指令让它执行。

Direct Memory Access(DMA)
当大量的数据被传输时,一个更高效的技术就显得很有必要了,DMA功能可以由一个独立的模块在系统总线上也可以被纳入一个I / O模块。在这两种情况下,技术工作如下。当处理器希望读或写一块数据,它发出一个命令DMA模块,通过DMA模块发送以下信息:
•是否读或写请求
•I / O设备的地址
•起始位置在内存中读取或写入数据的数据
•读写的字数

Symmetric Multiprocessors (SMP)对称多处理器
一个独立的计算机系统有以下特点:
1.两个或更多的处理器来提高运算能力
2.进程分享的同一个主存被一个数据总线(bus)或其他的内部链接组合
3.进程分享相同的I/O设备
4.所有处理器可以实现相同功能
5.系统集成控制的处理器和操作系统,提供互动的项目工作,任务,文件,数据元素的水平

图五

图五说明了SMP的组成。有多个处理器,每一个都包含自己的控制单元,算数逻辑单元和寄存器。每个处理器都有通向主存和I/O设备的接口,共享的数据总线。处理器可以通过连接的内存来相互通讯。

SMP的优势:

• Performance: If the work to be done by a computer can be organized so that some portions of the work can be done in parallel, then a system with multiple processors will yield greater performance than one with a single processor of the same type.
Availability: In a symmetric multiprocessor, because all processors can perform the same functions, the failure of a single processor does not halt the machine. Instead, the system can continue to function at reduced performance.
• Incremental growth: A user can enhance the performance of a system by adding an additional processor.
• Scaling: Vendors can offer a range of products with different price and performance characteristics based on the number of processors configured in the system。
•性能:如果所做的工作需要电脑可以组织这部分工作可以并行完成,然后用多个处理器系统性能将产生超过一个相同类型的处理器。
可用性:在对称多处理器,处理器可以执行相同的函数,因为所有单个处理器的故障不会停止机器。相反,系统可以继续函数在降低性能。
•增量增长:一个用户可以提高系统的性能通过添加额外的处理器。
•缩放:供应商可以提供一系列的产品有不同的价格和性能特征基于系统配置。

Multicore computer

操作系统系列「一」OPERATING SYSTEMS THREE EASY PIECES 《操作系统导论》 OPERATING SYSTEMS THREE EASY PIECES全书中文版: https://github.com/remzi-arpacidusseau/ostep-translations/tree/master/chinese 本书作者是美国威斯康星大学计算机系教授(夫妇),美国计算机OS教育领域的名宿,经常在美国各个大学应邀客座。作者坚持开放教材的理念,英文原版在国外盛名日隆,不仅CS学生,湾区技术界的读者也很推崇这本书,评价为“最好的开放式操作系统教材”。 内容提要 前言.. 阅读详情

相关推荐

Operating Systems

相反,如果给定厚块中对象的引用计数变为 0,通用的内存分配程序可以从专门的分配程序中回收这些空间,这通常发生在虚拟内存系统需要更多的空间的时候。这个二进制程序的代码页最开始是在硬盘上,但程序运行的时候,它们被加载到内存中(要么在程序开始运行时全部加载,要么在现代操作系统中,按需要一页一页加载)。如果是这样,只增加了很少的开销,因为 TLB 处理器核心附近,设计的访问速度很快。所以,系统的设计采用了这种分层的方式,这样可以让要求高性能的设备(比如显卡)离 CPU 更近一些,低性能的设备离 CPU 远一些。

m0_73638137的博客 906

深入解析nuta/operating-system-in-1000-lines项目:用户模式实现原理

在操作系统开发中,用户模式(User Mode)是实现进程隔离和系统保护的关键机制。nuta/operating-system-in-1000-lines项目通过精巧的设计,在有限代码量内实现了这一重要功能。 ## 用户程序加载机制 ### 执行映像处理 项目采用了直接加载二进制映像的方式,而非标准的ELF格式。这种简化设计使得系统能够在保持精简的同时实现基本功能: ```c #defin...

gitblog_00448的博客 400

【OS】Introduction to Operating Systems

计算机操作系统是一种。

bryant_meng 1618

【亲测免费】 operating-system-in-1000-lines:以千行代码构建操作系统

operating-system-in-1000-lines 是一个开源项目,致力于以简洁的千行代码展示操作系统的基本架构和工作原理。该项目通过一个网站和一个参考实现,为有兴趣深入了解操作系统内部运作的开发者和学习者提供了宝贵的资源。项目以简体中文、英语、日语和韩语等多语言版本提供,方便不同母语的用户学习和使用。 ## 项目技术分析 该项目采用现代Web技术构建,主要包括HTML、CSS和Ja...

gitblog_00004的博客 1163

操作系统笔记-番外-操作系统经典书籍推荐

最近整理以前的笔记,有人问关于操作系统的书籍。我有个爱好喜欢收集书籍,前后也收集了几百本高质量的书籍,这里给大家推荐基本关于操作系统的书籍 Operating System Concepts 10th edition 又称恐龙书,这本书已经出到第10版,可见其经典。作者是想从理论层面把问题的产生和解决思路阐述清楚,包含了操作系统各个方面,是一本非常不错的入门书籍。 豆瓣书评 下载地址: https://github.com/woodliu/Operating.System.Concepts.10th.Ed

houwanfeimark的专栏 921

常见嵌入式操作系统(Common Embedded Operating Systems)

嵌入式操作系统(Embedded Operating System,简称:EOS)是指用于嵌入式系统的操作系统。嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。本章详细介绍嵌入式实时操作系统。

Linux运维老纪的博客 1475

SillyTavern 完整上手指南:一个界面接管所有 AI 聊天,新手也能玩转角色扮演

如果你正在为"不同 AI 模型要用不同网页、不同配置"而头疼,SillyTavern 可能就是你要找的答案。它是一个面向重度玩家的 LLM 前端工具——简单说,它是一个统一的"聊天大厅",把 OpenAI、Claude、KoboldAI、NovelAI 等几乎所有主流模型接到同一个界面上,让角色扮演、小说创作和日常对话都发生在一个干净、可控、可定制的环境里。适合想认真玩 AI 角色扮演、又不想整天

gitblog_00883的博客 1013

Operating_Systems_From_0_to_1.pdf

You’ve probably asked yourself at least once how an operating system is written from the ground up. You might even have years of programming experience under your belt,yet your understanding of operating systems may still be a collection of abstract concepts not grounded in actual implementation. To those who’ve never built one, an operating system may seem like magic: a mysterious thing that can control hardware while handling a programmer’s requests via the API of their favorite programming language. Learning how to build an operating system seems intimidating and difficult; no matter how much you learn, it never feels like you know enough. You’re probably reading this book right now to gain a better understanding of operating systems to be a better software engineer.

千行代码实现操作系统内核:从零开始的OS开发指南

在计算机科学领域,操作系统开发一直被视为高深莫测的"黑魔法"。许多开发者认为构建一个可用的操作系统需要数十万行代码和庞大的团队协作。然而,事实并非如此。Linux内核的初始版本仅由8,413行代码构成,这证明操作系统核心功能可以通过精简的代码实现。 ## 项目概述 "千行代码实现操作系统"项目展示了如何用极简的代码构建一个功能完整的操作系统内核。该项目采用循序渐进的方式,从最基础的硬件交互开始...

gitblog_00926的博客 541

操作系统心得体会

个人心得与体会 操作系统 处理机调度等基本的模版

计算机操作系统总结

学习计算机操作系统时做的总结,结合网上的资源和部分自己的总结

深入解析nuta/operating-system-in-1000-lines项目:用户应用程序开发指南

你是否曾经好奇操作系统如何安全地运行用户程序?如何在保护内核的同时为用户程序提供丰富的功能?`nuta/operating-system-in-1000-lines`项目用极简的代码展示了用户应用程序开发的完整流程。本文将深入解析该项目中用户应用程序的开发机制,带你领略千行代码构建完整用户空间的精妙设计。 通过本文,你将掌握: - ✅ 用户程序内存布局设计与实现 - ✅ 系统调用机制的底层原理 ...

gitblog_01093的博客 316

Operating-System-Project:2018Spring学期操作系统课程项目

操作系统项目 支持的功能(至7月1日) 支持命令行,一个简单的外壳。 支持六状态(原点,就绪,运行,阻塞,挂起,退出)过程模型。 支持子线程机制。 支持动态内存管理和堆内存分配。 支持文件系统。 支持虚拟文件系统。 支持信号量机制。 支持延迟机制。 支持多个终端。 命令 ls : list the information of the folders and files inside the current work path in the below format: name size loaded memory address type (lma) (E:executable, F:folder, D: docume

操作系统导论《Operating Systems:Three Easy Piece》学习笔记(一)

操作系统导论《Operating Systems:Three Easy Piece》 教育真正的要点是让你对某些事情感兴趣,可以独立学习更多关于这个主题的东西,而不仅仅是你需要消化什么才能在某些课程上取得好成绩。 - - 本书前言 第一章 关于本书 分三个简单部分(关键概念) 虚拟化 并发 持久性 通过这三个关键概念 理解操作系统是如何工作的 它是如何决定接下来哪个程序使用CPU 如何...

sinat_33545026的博客 1887

Operating_Systems_From_0_to_1

linux ELF architecture,gdb debugger elf,x86 assembly language

MOS管热阻的测量方法

实验室内如何测试mos管热阻

weixin_43492562的博客 4092

荐书:Operating Systems: Three Easy Pieces

今天介绍一本书,书名叫做:《Operating Systems: three easy pieces》。如果日常工作中和底层打交道的话会遇到很多操作系统相关的问题,比如: 为何系统会出现 load 值高 cpu 利用率却不高的情况?为何会有那么多僵尸进程?某些场景下如何快速创建进程的 snapshot ?如何高效利用 CPU Cache Line(利用 Cache Friendly 的数据结构)...

mw_nice的博客 3675

用Navicat轻松管理魔兽世界私服数据库:修改IP、添加装备的实用技巧

本文详细介绍了如何使用Navicat管理魔兽世界私服数据库,包括修改服务器IP、添加自定义装备和调整角色属性等实用技巧。通过专业的SQL操作指南,帮助玩家轻松实现私服的高级定制,提升游戏体验。

fanta的博客 941

两万字笔记快速看完《操作系统导论(Operating Systems: Three Easy Pieces)》

操作系统导论(Operating Systems: Three Easy Pieces)笔记 目录操作系统导论(Operating Systems: Three Easy Pieces)笔记内容提要操作系统三大话题技术演进 内容提要 本文主要是对Arpaci-Dusseau教授夫妇所著书籍《Operating Systems: Three Easy Pieces》(中文译名为:操作系统导论,后文中简称为“该书”)的摘要和读后感。以操作系统相关的三个话题展开,针对每一种技术的历史沿革做出相应的梳理,并强调一些

O_1CxH的博客 8543

opencv实践项目-图片拼接之缝合线算法

opencv 图片缝合线算法

wyw0000的博客 2624

nvidia系列教程-AGX-Orin系统刷机及备份

NVIDIA AGX Orin 是一款高性能的嵌入式计算平台,专为边缘计算和 AI 应用而设计。为了确保系统的稳定性和适应不同的应用场景,用户可能需要对 AGX Orin 进行系统刷机和备份操作。本文将详细介绍如何完成这些操作,帮助您更好地管理和维护 AGX Orin 设备。通过以上步骤,您可以成功地为 NVIDIA AGX Orin 刷写系统并创建备份。这些操作不仅能帮助您保持系统的更新和安全,还能在遇到问题时快速恢复系统。

flypig has a dream! 3328

Operating Systems Concepts

• 进程是。

gyh101010的博客 1087

【异常】Python环境中没有安装 `openpyxl` 模块提示ModuleNotFoundError: No module named ‘openpyxl‘

是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的库。只是示例版本号,你可以根据需要选择不同的版本。安装完成后,再次尝试运行你的程序,应该就不会再出现。,这表明你的Python环境中缺少。运行一个Python程序时遇到了。如果由于某些原因你无法直接使用。,你可以指定版本号来安装,这里。要解决这个问题,你需要安装。

奶爸的编程之路,也就一周冷个三天 3398
下一篇: 操作系统(Operating System)3
卡滏Quaff
博客等级 码龄11年 5粉丝 29原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值