《操作系统 - 清华大学》1 -1:操作系统概述 —— 内容概述

news2024/9/25 23:17:08

文章目录

  • 1. 内容摘要
  • 2. 实验内容

1. 内容摘要

在这里对学习内容做一个整体上的介绍,那在这里包括我们要学习的内容,实验的内容。操作系统课涉及到计算机系统当中的资源管理,所以我们围绕着操作系统的实现来介绍相关内容,那主要分成这样几个部分:

在这里插入图片描述

  1. 第一个操作系统软件的结构。任何一个软件在设计的时候和在实现的时候,它都有自己的结构特点。那对于操作系统来说,它有什么样的结构特点?是我们在这里需要来讨论的问题。

  2. 第二个是中断与系统调用。这说的是操作系统这个软件,它和外界打交道的这些接口。

    中断是操系统和硬件打交道的接口:操作系统在服务的过程当中,外部如果有设备有请求,比如说你敲键盘,网络有数据包来了,这时候操作系统如何对它进行响应?那这是中断里要讨论的内容。硬件上已经有了一些机制,能够对外边做一些响应,但这时候它只是做了其中第一步,比如说你敲键盘的时候,那这时候的硬件机构已经能把数据存到相应的缓冲区里头,但是缓冲区如何到应用程序里,那是操作系统需要解决的问题。

    而系统调用是操作系统对上层应用提供的服务接口。也就说上层应用要想利用操作系统提供的服务来实现自己功能,那就必须使用系统调用。而在这里头,系统调用如何从用户态的应用程序里头获取用户想使用服务的类型和相应的这些输入数据,都必须从系统调用接口来,在这里系统调用的介绍,如何让用户的输入能够到系统里头来。系统输处理完的结果如何能回到用户态?

    而接下来的这几个部分是我们操系统要管理的资源。

  3. 第一个是内存资源。也就说在计算机系统当中,由内存随机访问存储器,这部分存储能力会有很多的应用程序要使用,那如何协调各个应用对内存的使用?

    可能会是说有的应用,它需要大量的内存空间来存储数据,有的应用需要的不多,那这时候对于我们操性来说需要多少?要么是应程序告诉你我需要多少,要么是你在使用的过程中动态进行调节,而这种调节和分配内存的分配和回收是我们操系统要做的事情。

  4. 接下来一个是操作系统需要管理用户程序的执行过程

    也就是说任何一个程序在执行,它首先需要系统给它分配它执行所需要的资源,比如说 CPU、 内存和相应要访问的这些外部设备和数据资源。那有了这些资源之后,程序开始运行,在运行过程中,这些执行的状态也是在不断变化的过程当中,它可能会占用 CPU 执行指令,也可能会由于等待用户输入而进入暂停状态,这些状态的维护就是我们这里所说的进程和线程,操作系统需要维护每一个正在执行的程序它的状态。以便于在它们执行结束之后能够回收相应的资源。这是进程管理需要讨论的问题。

  5. 接下来一个是处理机调度。处理机调度是说我们有多个进程在计算机系统当中交替运行,那么如果说你只有一个 CPU,或者说你的应用进程数目是大于你 CPU 数目,做不到每一个进程有一个完全独占的 CPU 来使用,那么这时候大家是交替使用 CPU 来执行指令。

    那这种交替就需要有一个调度,到底一个正在执行的进程到什么时候才让出 CPU 使用权?下一个选择又是谁?那这是我们调度算法要解决的问题。

  6. 好,接下来一个是进程间通讯,或者叫同步互斥。这里指的是我们任何一个应用进程,它在执行的过程中它都不会是自己一个在那封闭着进行执行,不会跟外界做任何交道。我们计算机上的程序它所做到的最大的好处是由于用户输入的不同,那给出不同的处理结果,而这个处理是可以重复进行的,所以我们在这里才会有计算机程序来实现自动化的处理。那为了实现这个,计算机上的各个应用进程之间,它们是需要有一些通讯交流的,那这种交流就是我们这里的同步互斥。

    也就说两个进程之间要想进行通讯,那这个通讯是在操作系统的控制下完成的,操作系统控制下如何让这种进程间的信息交流做得流畅、安全?那这是这一部分要讨论的问题。

  7. 而下一个文件系统是说,计算机系统当中数据大到一定程度之后,那这时候就不能简单地整一张线性的表来存这些数据,那我们必须把这个数据管理起来做持久性的保存。

    而这一部分大了一定程度之后,它就变成一个系统了,在这个系统当中我们如何来组织这些文件,以便于方便用户的读写和查找?那这也是操系统要解决的问题之一。

  8. 最后一个是 IO 子系统,计算机系统当中 CPU 、内存这两个部分的种类相对来说比较少。而对于它所能够涉及的外设会有很多种,那基于一种不完全统计,我们能够连到 PC 机上的外部设备的种类应该是上万的。

    那这些差异非常大的这些外部设备对于计算机系统来说如何连上来,实际是一个很大的挑战,那对于这一部分是由操作系统里的 IO 子系统来负责管理。我们需要把这些差异非常大的这些设备连到同一个系统上来,并且都能对它们进行高效的控制。

    比如说我们键盘的速度是很慢的,那这时候两只手一起敲,一秒钟也就最多敲几十个按键。而如果说我们用的网络接口是10 G 的,那这时候它的数据量在一秒钟就是10个 GBPS,这两者之间的差异是非常大的。操作系统需要在里头提供一个尽可能统一的接口来管理尽可能范围大的这些外部设备。

从这个角度来讲,操作系统涉及到内容是非常广泛的,所以操作系统课也是一种介绍性的课程,那对每一个部分深入介绍下去都会是一个非常专门的后续课程的讨论内容。

2. 实验内容

另一个内容是实验,就基本上是围绕着我们前边的学习内容形成的8个实验:在这里插入图片描述

  1. 实验 0 是实验环境的准备。在这里不会去讲如何使用 Linux,如何使用 Windows,但是你要想在已有操系统上来做实验,那你必须知道 Windows 和 Linux 如何使用。

而下边的这8个实验基本是围绕着我们前面内容。

  1. 启动和中断对应着中断和系统调用

    内存管理在这分成两个实验,物理内存和虚拟存储管理。

  2. 物理内存管理是负责物理存储的分配和回收。

  3. 虚拟存储实际是相当于说我们把物理存储的这些存储能力抽象成一个虚拟的存储界面,让用户在使用的时候,一种明显特征是说我可以用到比物理内存更大的一个存储环境。

  4. 而对于进程和线程,在这里分成是内核线程管理用户进程管理这两个部分;

  5. 接下来分别是处理机调度对应的实验6 CPU调度

  6. 同步互斥对应 实验7 同步与互斥

  7. 文件系统对应的 实验8 文件系统

这样的话,所有的这些学习主要内容在这里都有相应的实验与它对应起来。同时我们在这里头做的实验,它是一个相互关联的整体。在一开始的时候就给大家一个实验的基础代码,然后就往上添你的功能,你每添上去一个功能的时候,那你的这个实验系统它的处理能力就比原来会强一些,那你在做后续实验的时候有可能会用到你前边实现的功能,所以在这大家在做实验的时候一定不要说我在前面做实验的时候能通过测试就做完任务。有可能你在后边做实验的时候会发现你前面的那这个实验的代码会有问题,所以你对前面的实验要认真仔细去做,可以方便你后边加快实验进度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2165083.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java之路--瓦解逻辑控制与方法使用已是瓮中捉鳖

嗨嗨大家!今天我们来学习逻辑运算和方法的使用~ 目录 一 逻辑控制 1 分支结构 1.1 if语句 1.2 switch 语句 2 循环结构 2.1 while 循环 2.2 for 循环 2.3 do while 循环 2.4 break 2.5 continue 3. 输出输入 二、方法的使用 1 方法定义语法 2 实参和…

NCU-机器学习-作业3:RANK: 0.0代码(No)

想体验一把No.1的快乐吗?话不多说直接上代码。 代码: import osimport pandas as pd from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC import numpy as npdef get_dataset(path):dataset, labels [], []filenames os…

SDK使用指南

本文档主要讲解音视频终端 SDK 产品家族下各子产品的能力支持及购买方式,并提供了相关 Demo 和 SDK 集成资源,具体体验步骤如下: 步骤一:了解产品 1.1 音视频终端 SDK 产品家族介绍 音视频终端 SDK(腾讯云视立方&…

python基础之绘图turtle与分词

python基础 1.学习目的2.实验2.1实验一2.2实验二 3.实验代码及结果 1.学习目的 python库很多,所以我们要在空闲之余学习我们没有遇到的库,就比如turtle和分词库 2.实验 2.1实验一 2.2实验二 3.实验代码及结果 # File: turtle库.py # Author: chen_so…

第L2周:机器学习|线性回归模型 LinearRegression:1. 简单线性回归模型

本文为🔗365天深度学习训练营 中的学习记录博客原作者:K同学啊 任务: ●1. 通过本文学习LinearRegression简单线形回归模型。 ●2. 模仿本文代码,通过鸢尾花花瓣长度预测花瓣宽度。 一、概念 什么是回归 回归的目的是为了预测&…

Vue3入门 - ElementPlus中左侧菜单和Tabs菜单组合联动效果

在Vue3中,ElementPlus是使用比较广泛的UI组件库,提供了丰富的界面元素支持项目开发需求。在后台管理系统中,左侧或顶部的菜单栏通常包含多个子菜单项,通过菜单的展开和收缩功能,用户可以方便地查看或隐藏不需要的菜单项…

Centos7.9安装.Net 8.0框架

1.背景 在Centos7.9编译运行Net8.0项目时,会用到.Net8.0框架。所以我实操了如何在Centos7.9去安装.Net8.0框架。本文记录了相关操作过程,是一个比较好的参考。 2.操作 2.1 安装框架 sudo rpm -Uvh https://packages.microsoft.com/config/centos/8/pa…

一文理解AXI4-lite与AXI4-stream协议

AXI4-lite与AXI4-stream协议 上篇博文《AMBA3.0 AXI总线入门》浅要介绍AXI4总线协议,AXI总线作为一种总线,可以挂载多个主设备(master)和从设备(slave),AXI总线协议定义了主设备和从设备之间如何…

Docker本地部署Chatbot Ollama搭建AI聊天机器人并实现远程交互

文章目录 前言1. 拉取相关的Docker镜像2. 运行Ollama 镜像3. 运行Chatbot Ollama镜像4. 本地访问5. 群晖安装Cpolar6. 配置公网地址7. 公网访问8. 固定公网地址 前言 本文主要分享如何在群晖NAS本地部署并运行一个基于大语言模型Llama 2的个人本地聊天机器人并结合内网穿透工具…

Web安全-SQL注入之联合查询注入

声明 环境 墨者学院-SQL手工注入漏洞测试(MySQL数据库-字符型) 判断是否存在漏洞 http://124.70.64.48:42937/new_list.php?idtingjigonggao and 12-- and 11正常 http://124.70.64.48:42937/new_list.php?idtingjigonggao and 12-- and 12出错,存在字符型注入…

yolov8训练数据集——labelme的json文件转txt文件

yolov8的环境搭建,参考:Home - Ultralytics YOLO Docs 1.把标注好的json文件和jpg放同一个目录下。 2.运行转换脚本文件labelme2yolo.py文件: # -*- coding: utf-8 -*-import os import numpy as np import json from glob import glob im…

python学习笔记(3)——控制语句

控制语句 我们在前面学习的过程中,都是很短的示例代码,没有进行复杂的操作。现在,我们将开始学习流程控制语句。 前面学习的变量、数据类型(整数、浮点数、布尔)、序列(字符串、列表、元组、字 典、集合&am…

GPS在Linux下的使用(war driving的前置学习)

1.ls /dev/tty* 列出所有与 tty 相关的设备文件。这些设备文件通常对应终端设备 ttyUSB0是GPS端口 2.cat /dev/ttyUSB0 用于读取并显示连接到 /dev/ttyUSB0 串口设备发送的原始数据 这种是GPS定位不全的,要拿到更开阔的地方 这种是GPS定位全的 因为会持续输出…

大模型神书《HuggingFace自然语言处理详解——基于BERT中文模型的任务实战》读完少走几年弯路!

这几年,自然语言处理(NLP)绝对是机器学习领域最火的方向。那么今天给大家带来一本 《HuggingFace自然语言处理详解——基于BERT中文模型的任务实战》 这本大模型书籍资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证…

MoveIt控制机械臂的运动实现——机器人抓取系统基础系列(二)

文章目录 概要1 用户接口和代码案例2 不同的规划类型2.1 关节空间规划2.2 工作空间规划2.3 笛卡尔空间规划 3 MoveIt运行实操4 相关资料推荐小结 概要 MoveIt为开发者提供了针对机械臂的集成化开发平台,由一系列操作相关的功能包组成,包括运动规划、操作…

一、人物朝向摄像机移动

一、导入插件Cinemachine 重命名为ThirdPersonCamera Follow和LookAt 选择为player 镜像Y轴,取消X轴 摄像机绑定模式为World Space 二、挂载代码PlayerController using System.Collections; using System.Collections.Generic; using UnityEngine;public class…

查询最近正在执行的sql(DM8 : 达梦数据库)

查询最近正在执行的sql DM8 : 达梦数据库 1 查询最近正在执行的sql2 更多达梦数据库学习使用列表 1 查询最近正在执行的sql 迁移数据时 , 业务无响应 , 查看最近活动的sql , 有没有迁移相关的表 , 通过最后的时间字段 , 判断会话是否正在执行 SELECT SESS_ID, SQL_TEXT, STATE…

三条命令实现linux内核升级

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm 如果报:curl: (35) Peer reports incompatible or unsupported protocol version. 执行命令: yum update -y nss curl libcurl 2.yum --enablerepoelrepo-kernel install …

iOS六大设计原则设计模式

六大设计原则: 一、单一职责原则 一个类或者模块只负责完成一个职责或者功能。 类似于:UIView 和 CALayer 二、开放封闭原则 对扩展开放,对修改封闭。 我们要尽量通过扩展软件实体来解决需求变化,而不是通过修改已有的代码来…

Redis主从集群搭建

一、什么是主从复制 主从复制,是指将一台redis服务的数据复制到集群中其他的redis服务,前者称(Maste),后者称(Slave);数据的复制是单向的,只能从主节点复制到从节点,一个主节点可以有多个从节点&#xff0…