操作系统笔记(一)

一、操作系统概述

阅读笔记:https://blog.csdn.net/qq_36894974/article/details/104554120

1、计算机硬件

  1. 用户通过软件——操作系统来控制计算机的硬件执行命令,比如cpu、内存、硬盘、鼠键等等这些都是硬件。
  2. 软件分为了用户态内核态
    1)shell 或者 GUI处于用户态中,用户态就是允许用户运行各种程序。
    2)操作系统是软件中最基本的部分,它运行在内核态中,操作系统具有硬件的访问权,可以执行机器能够运行的任何指令。

1.1 CPU

  1. CPU 是计算机的大脑,它主要和内存进行交互,从内存中提取指令并执行。CPU的一个周期为:取指—>解码—>执行。每个 CPU 都有一组可以执行的特定指令集。流水线超标量这些执行方式,是因为cpu的访问、解码和执行单元可能是单独的,或者说有时有多个取指、解码和执行单元,所以看起来能多个指令一起工作。
  2. 由于cpu访问内存要时间,所以cpu内部会包含一些寄存器:通用寄存器来放关键变量和临时结果;特殊寄存器有:程序寄存器,放下一条需要从内存提取指令的地址;堆栈指针,指向内存中当前栈的顶端,这个地方可能放了有关参数、局部变量以及没有保存在寄存器中的临时变量。程序状态字寄存器(PSW),跟踪当前系统的状态。除非发生系统结束,否则我们可以忽略 PSW 。
  3. CPU 有内核态和用户态两种模式,由PSW寄存器中的一个二进制位来实现切换。用户程序必须使用系统调用(system call)后,系统调用会转换为内核态并且调用操作系统。
    • 当运行在内核态时,CPU 能够执行任何指令集中的指令并且能够使用硬件的功能。
    • 在用户态下,CPU 只能执行指令集中的一部分并且只能访问硬件的一部分功能。一般情况下,在用户态下,有关 I/O 和内存保护的所有指令是禁止执行的,更不能改PSW。
  4. 多核和多线程
    CPU的多线程,是指CPU 能保持多个不同的线程状态并且在纳秒级的时间完成切换。多线程不会提供真正的并行处理,在一个时刻只有一个进程在运行。每个线程对操作系统来说都像是一个单个的 CPU,多个线程就像是多个CPU。
    许多 CPU 芯片上都具有四个、八个或更多的内核。多核芯片就是一个CPU拥有多个核心,每个核心拥有独立的运算处理单元、控制器、寄存器、L1、L2缓存,然后一个CPU的多个核心共享最后一层CPU缓存L3,使其可以同时运行一个进程的多个线程。也有的是L2就共享了。其他的硬件资源都是共享的。

1.2 存储系统

这部分也可以参考crash course的科普:https://www.bilibili.com/video/BV1EW411u7th?p=19
内存应该要快、大、便宜,不拖慢cpu的执行指令的效率。但无法同时满足三点,所以就有了分层存储结构。有四层,从上到下分别是:寄存器、高速缓存、主存(内存)、磁盘,从上到下越来越慢、大、便宜。上层里的内容是从下层里取出来的,是下一层数据的子集。
寄存器是在cpu中,和制作cpu是一样的材料,跟cpu一样快,但很小,就不再多说了。

1.2.1 高速缓存

高速缓存是介于CPU和内存之间的临时数据交换的缓冲区。高速缓存分为L1、L2、L3三级(层)缓存,由SRAM构成,主存是用DRAM做的,SRAM和DRAM都是断电数据就掉了,但S要比D快很多。每一个缓存里都有许多缓存行。(高速缓存有很多细节,详见CSAPP)

1.2.2 内存(主存)

也叫主存,由DRAM和ROM组成。ROM又快又便宜,但放进去东西后就改不了,只读不可写,来存放一些系统程序,比如开机的时候的BIOS,bootstrap引导加载模块。RAM就是放那些所有不能再高速缓存中找到的东西,都来这个DRAM里找。

1.2.3 外部存储器——磁盘
  • 上面的都是内部存储器,磁盘是外部存储器,即CPU不能直接访问的存储器,它需要经过内存与CPU及I/O设备交换信息,用于长久地存放大量的包括暂不使用的程序和数据。
  • 磁盘同 RAM相比,每个二进制位的成本低了两个数量级,容量大了两个数量级,但是随机访问数据时间大约慢了三个数量级。磁盘访问慢的原因是因为磁盘的构造不同。机械磁盘是一种机械装置,有磁道、柱面等内容。速率有50MB/s-160MB/s。
  • 磁盘分为硬盘和软盘,硬盘包括机械硬盘和固态硬盘。 EEPROM和闪存(flash memory)可以擦除和重写,断电了数据还在。比RAM慢一个数量级,但是比磁盘快多个数量级,固态硬盘(SSD)就是用闪存制作的。
1.2.4 虚拟内存
  • 最初,程序指令所访问的内存地址就是物理内存地址. 也就是不得不把程序的全部装进内存当中,然后cpu执行的时候就从内存里直接寻址。这种方式出现了一系列问题,就有了虚拟内存。
  • 就是给每个程序分配它自己的连续的地址空间,这个空间被分割成多个块,每一个块被称作一页或页面。每一页有连续的地址范围。这些页被映射到物理内存,但并不是所有的页都必须在内存中才能运行程序。当程序引用到一部分在物理内存中的地址空间时,由MMU立刻执行必要的映射。当程序引用到一部分不在物理内存中的地址空间时,由操作系统负责将缺失的部分装入物理内存并重新执行失败的指令。
  • 总的来说,就是将程序放在磁盘上,而将主存当作是一部分缓存,用来保存最频繁使用的部分程序。其中虚拟地址和物理地址的映射,用的是存储器管理单元(Memory Management Unit, MMU)。

1.3 I/O设备

I/O 设备一般包括两个部分:设备控制器和设备本身。控制器本身是一块芯片或者一组芯片,它能够接收操作系统的指令,控制物理设备。例如,从设备中读取数据并完成数据的处理。
设备驱动程序(device driver)是专门与控制器进行信息交流,发出命令、处理指令、接收响应的软件。为了使设备驱动程序能够工作,必须把它安装在操作系统中,这样能够使它在内核态中运行。

1.4 总线

连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,可以将计算机系统内的多种设备连接到总线上。有三类:数据总线、地址总线、控制总线。
详见:https://blog.csdn.net/dala_da/article/details/78650035

1.5 计算机启动

主板上有bios芯片,里面放了BIOS程序。计算机启动的时候,BIOS 开启,

  1. BIOS会首先检查所安装的 RAM 的数量,键盘和其他基础设备是否已安装并且正常响应。
  2. 它开始扫描 PCIe 和 PCI 总线并找出连在上面的所有设备。
  3. 它通过 CMOS 存储器中的设备清单尝试启动设备,用户可以在系统启动后进入BIOS 配置程序,对设备清单进行修改。
  4. 判断是否能够从外部 CD-ROM 和 USB 驱动程序启动,如果没有,系统将从硬盘启动,boots 设备中的第一个扇区被读入内存并执行,然后从该分区读入第二个启动加载程序,该加载器从活动分区中读取操作系统并启动操作系统。
  5. 操作系统会询问 BIOS 获取配置信息。对于每个设备来说,会检查是否有设备驱动程序。一旦有了设备驱动程序,操作系统会把它们加载到内核中,然后初始化表,创建所需的后台进程,并启动登录程序或GUI。

2、操作系统的概念

2.1 进程

进程的本质就是操作系统执行的一个程序。进程就是容纳运行一个程序所有信息的一个容器。一个挂起的进程包括:进程的地址空间和对应的进程表项。与一个进程有关的所有信息,除了地址空间的内容以外,均存放在操作系统的一张表中,称为 进程表(process table),进程表是数组或者链表结构,当前存在每个进程都要占据其中的一项。

  • 地址空间是指,从某个最小值的存储位置(通常是零)到某个最大值的存储位置的列表。在这个地址空间中,进程可以进行读写操作。地址空间中存放有可执行程序,程序所需要的数据和它的
  • 与每个进程相关的其他内容有:资源集,通常包括寄存器(寄存器一般包括程序计数器(program counter)和堆栈指针(stack pointer))等其他需要执行程序的信息。(猜测:这些应该都被放在了进程表中)
  • 进程中断时,稍后启动该进程所需要的许多其他信息,比如进程的指针,都放在了进程表里。
  • 系统调用决定着进程的创建和终止。
  • 哪些东西放在了进程表里,目前还只是猜测
  • 原文中从 进程间通信——>超级用户 这个部分的内容,都没看太清楚。

2.2 地址空间

多个进程同时放入内存时,为了保护内存,设置了虚拟内存。感觉地址空间和虚拟内存有关。

2.3 文件

创建、删除、读、写文件。要创建目录。文件描述符检查访问权限。为了对I/O设备读写,把I/O设备作为特殊文件。管道可以连接两个进程。

3、系统调用

坑,未来再填。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自动控制节水灌溉技术的高低代表着农业现代化的发展状况,灌溉系统自动化水平较低是制约我国高效农业发展的主要原因。本文就此问题研究了单片机控制的滴灌节水灌溉系统,该系统可对不同土壤的湿度进行监控,并按照作物对土壤湿度的要求进行适时、适量灌水,其核心是单片机和PC机构成的控制部分,主要对土壤湿度与灌水量之间的关系、灌溉控制技术及设备系统的硬件、软件编程各个部分进行了深入的研究。 单片机控制部分采用上下位机的形式。下位机硬件部分选用AT89C51单片机为核心,主要由土壤湿度传感器,信号处理电路,显示电路,输出控制电路,故障报警电路等组成,软件选用汇编语言编程。上位机选用586型以上PC机,通过MAX232芯片实现同下位机的电平转换功能,上下位机之间通过串行通信方式进行数据的双向传输,软件选用VB高级编程语言以建立友好的人机界面。系统主要具有以下功能:可在PC机提供的人机对话界面上设置作物要求的土壤湿度相关参数;单片机可将土壤湿度传感器检测到的土壤湿度模拟量转换成数字量,显示于LED显示器上,同时单片机可采用串行通信方式将此湿度值传输到PC机上;PC机通过其内设程序计算出所需的灌水量和灌水时间,且显示于界面上,并将有关的灌水信息反馈给单片机,若需灌水,则单片机系统启动鸣音报警,发出灌水信号,并经放大驱动设备,开启电磁阀进行倒计时定时灌水,若不需灌水,即PC机上显示的灌水量和灌水时间均为0,系统不进行灌水。
智慧农业是一种结合了现代信息技术,包括物联网、大数据、云计算等,对农业生产过程进行智能化管理和监控的新模式。它通过各种传感器和设备采集农业生产中的关键数据,如大气、土壤和水质参数,以及生物生长状态等,实现远程诊断和精准调控。智慧农业的核心价值在于提高农业生产效率,保障食品安全,实现资源的可持续利用,并为农业产业的转型升级提供支持。 智慧农业的实现依赖于多个子系统,包括但不限于设施蔬菜精细化种植管理系统、农业技术资料库、数据采集系统、防伪防串货系统、食品安全与质量追溯系统、应急追溯系统、灾情疫情防控系统、农业工作管理系统、远程诊断系统、监控中心、环境监测系统、智能环境控制系统等。这些系统共同构成了一个综合的信息管理和服务平台,使得农业生产者能够基于数据做出更加科学的决策。 数据采集是智慧农业的基础。通过手工录入、传感器自动采集、移动端录入、条码/RFID扫描录入、拍照录入以及GPS和遥感技术等多种方式,智慧农业系统能够全面收集农业生产过程中的各种数据。这些数据不仅包括环境参数,还涵盖了生长状态、加工保存、检验检疫等环节,为农业生产提供了全面的数据支持。 智慧农业的应用前景广阔,它不仅能够提升农业生产的管理水平,还能够通过各种应用系统,如库房管理、无公害监控、物资管理、成本控制等,为农业生产者提供全面的服务。此外,智慧农业还能够支持政府监管,通过发病报告、投入品报告、死亡报告等,加强农业产品的安全管理和质量控制。 面对智慧农业的建设和发展,存在一些挑战,如投资成本高、生产过程标准化难度大、数据采集和监测的技术难题等。为了克服这些挑战,需要政府、企业和相关机构的共同努力,通过政策支持、技术创新和教育培训等手段,推动智慧农业的健康发展。智慧农业的建设需要明确建设目的,选择合适的系统模块,并制定合理的设备布署方案,以实现农业生产的智能化、精准化和高效化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值