操作系统开发

0906

爱⌒轻易说出口 提交于 2020-02-13 05:29:53
目录 1.什么是编程? 2.简述计算机组成 1.控制器 2.运算器 3.存储器 内存 外存 4.输入设备 5.输出设备 3.简述机械硬盘的工作原理 4.操作系统有什么用 5.计算机由哪三大部分组成 6.简述操作系统和应用程序的启动流程 操作系统启动流程 应用程序的启动流程 7.编程语言的分类有哪些?并评估各个分类的优缺点. 1.机器语言 2.汇编语言 3.高级语言 编译型语言 解释型语言 8.简述执行python程序的两种方式以及他们的优缺点 1.交互式 2.命令行式 0905 作业 1.什么是编程? 编程是编写一些文件使得计算机能理解人发出的指令. 2.简述计算机组成 1.控制器 指挥系统,控制计算机的各种指令操作 2.运算器 负责各种运算,算术运算和逻辑运算 3.存储器 内存 容量小,执行速度快 外存 容量大,执行速度慢 4.输入设备 计算机接收信息的设备 5.输出设备 计算机输出信息 3.简述机械硬盘的工作原理 机械臂将磁头打到盘面上,通过磁道储存的数据来获取数据. 4.操作系统有什么用 操作系统与硬件交互,将对硬件的复杂操作封装为简单的接口,软件调用硬件需要使用操作系统来调用 5.计算机由哪三大部分组成 应用程序 操作系统 硬件 6.简述操作系统和应用程序的启动流程 操作系统启动流程 计算机开启时先启动临时启动程序,将操作系统读入内存,CPU运行操作系统代码

day13

坚强是说给别人听的谎言 提交于 2020-02-13 04:26:27
目录 一、什么是编程 二、详述计算机组成 CPU 控制器 运算器 存储器(1块,时代发展成2块) 主存(内存) 外存(硬盘) I/O设备 输入设备 输出设备 三、简述机械硬盘工作原理 机械手臂 磁道 扇区 平均寻道时间 平均延迟时间 平均寻找数据时间 四、操作系统有什么用 五、计算机由哪三大部分组成 应用程序--》操作系统交互 操作系统--》人/应用程序/硬件 硬件--》操作系统/硬件 六、简述操作系统和应用程序的启动流程 操作系统的启动 应用程序的启动 七、编程语言的分类有哪些及优缺点 机器语言 汇编语言 高级语言 编译型 解释型 八、执行Python程序的两种方式及优缺点 交互式 命令行式 一、什么是编程 通过编程语言做一些事情,写一堆.py/.obj/.css文件 二、详述计算机组成 CPU 控制器 控制硬件 运算器 算数运算和逻辑运算 存储器(1块,时代发展成2块) 主存(内存) 优点:速度快 缺点:容量小,断电即消失 外存(硬盘) 优点:容量大,永久存储 缺点:速度慢 I/O设备 输入设备 输入信息,如键盘/鼠标 输出设备 输出信息,如显示屏/打印机 三、简述机械硬盘工作原理 机械手臂 读取数据 磁道 存储数据 扇区 划分磁道 平均寻道时间 5ms,寻找磁道的时间 平均延迟时间 4.15ms,最坏情况转一圈,最好情况直接找到 平均寻找数据时间 9.15ms 四

day0906

一个人想着一个人 提交于 2020-02-12 11:27:14
目录 作业 1.什么是编程 2.计算机的组成 3.机械硬盘工作原理 4.操作系统有什么用 5.计算机由哪三大部分组成 6.简述操作系统和应用程序的启动流程 7.编程语言的分类有哪些?并评估各个分类的优缺点 8.简述执行python程序的两种方式以及他们的优缺点 作业 1.什么是编程 编写 一系列程序文件,实现某种功能 2.计算机的组成 运算器 算数运算+逻辑运算 控制器 控制硬件 存储器 内存 读取速度快,容量小,断电数据丢失 外存 读取速度慢,容量大,可以永久保存数据 输入设备 输入信息(键盘,鼠标) 输出设备 输出信息(显示器,打印机) 3.机械硬盘工作原理 机械手臂(读取数据) 磁道(存储数据) 扇区(划分磁道) 平均寻道时间(5ms) 平均延时时间(4.15ms) 平均寻找数据时间(9.15ms) 4.操作系统有什么用 虚拟出一系列的接口供我们使用,并将复杂的硬件操作简单化 5.计算机由哪三大部分组成 应用程序 操作系统 硬件 6.简述操作系统和应用程序的启动流程 应用程序的启动 以QQ举例,双击QQ(找到QQ的地址) 操作发命令给CPU CPU发命令给内存,内存发指令给硬盘 内存将硬盘中的QQ数据读取到内存 运行并启动QQ程序 操作系统的启动 开机,上电,启动临时操作系统 临时操作系统将操作系统的数据读入内存 运行操作系统,关闭临时操作系统 7.编程语言的分类有哪些

《操作系统教程》第5版-Chapter1-操作系统概述知识点整理

旧城冷巷雨未停 提交于 2020-02-11 21:17:29
操作系统资源管理技术:复用,虚拟和抽象 复用:时分复用,空分复用 虚拟:物理资源与逻辑资源的对应。如SPOOLing,虚拟内存,VFS 时间换空间:虚拟存储技术 空间换时间:SPOOLing 抽象:资源体现为接口,接口表现为一组操作 操作系统最基础的抽象:进程抽象,虚存抽象,文件抽象 进程抽象:进入内存的执行程序在处理器上操作的状态集的一个抽象。对于用户来说,就是fork(),wait()和exec(),不关心细节操作 文件抽象:设备的一种抽象。open(),write(),read(),不关心细节操作 操作系统: 管理系统资源 控制程序运行 改善人机界面 提供各种服务 组织工作流程 为用户提供良好运行环境的一种系统软件 操作系统的作用:(接口与服务,进程调度,虚拟机,管理资源) 用户接口与公共服务:改善人机界面,提供各种服务 进程执行的控制者和协调者:控制程序运行,组织工作流程 扩展机与虚拟机 资源的管理者和控制者:管理系统资源 操作系统管理的资源:(CPU,硬盘,打印机,文件,网络) 处理器 存储 设备 文件 联网与通信 系统调用:使用系统服务 作用:保证系统安全性,提供一致性接口 系统调用的分类: 1.进程管理 2.文件管理 3.设备管理 4.存储管理 5.进程通信 6.信息维护:系统信息 操作系统的分类 批处理操作系统:批中作业输入作业队列,依次执行 关键机制是

宏內核與微內核區別

99封情书 提交于 2020-02-10 20:33:32
操作系統內核-宏內核與微內核(轉載) 聲明:本文從CSDN轉載,原文鏈接為: https://blog.csdn.net/Silencegll/article/details/51496158 操作系统内核可能是微内核,也可能是单内核(后者有时称之为宏内核Macrokernel)。按照类似封装的形式,这些术语定义如下: 单内核:也称为宏内核。将内核从整体上作为一个大过程实现,并同时运行在一个单独的地址空间。所有的内核服务都在一个地址空间运行,相互之间直接调用函数,简单高效。微内核:功能被划分成独立的过程,过程间通过IPC进行通信。模块化程度高,一个服务失效不会影响另外一个服务。Linux是一个单内核结构,同时又吸收了微内核的优点:模块化设计,支持动态装载内核模块。Linux还避免了微内核设计上的缺陷,让一切都运行在内核态,直接调用函数,无需消息传递。 Linux大部分都是单内核的。 微内核(Microkernel kernel)――在微内核中,大部分内核都作为单独的进程在特权状态下运行,他们通过消息传递进行通讯。在典型情况下,每个概念模块都有一个进程。因此,假如在设计中有一个系统调用模块,那么就必然有一个相应的进程来接收系统调用,并和能够执行系统调用的其他进程(或模块)通讯以完成所需任务。 在这些设计中,微内核部分经常只但是是个消息转发站:当系统调用模块要给文档系统模块发送消息时

python 池 协程

前提是你 提交于 2020-02-09 16:58:53
# 有多少个任务就开多少个进程或者线程# 什么是池 # 要在程序开始的时候,还没提交任务先创建几个线程或者进程 # 放在一个池子里,这就是池# 为什么要用池? # 如果先开好进程/线程,那么有任务之后就可以直接使用这个池中的数据了 # 并且开好的线程或者进程会一直存在在池中,可以被多个任务反复利用 # 这样极大的减少了开启\关闭\调度线程/进程的时间开销 # 池中的线程/进程个数控制了操作系统需要调度的任务个数,控制池中的单位 # 有利于提高操作系统的效率,减轻操作系统的负担# 发展过程# threading模块 没有提供池# multiprocessing模块 仿照threading写的 Pool# concurrent.futures模块 线程池,进程池都能够用相似的方式开启\使用# 线程池# import time# import random# from threading import current_thread# from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor# def func(a,b):# print(current_thread().ident,'start',a,b)# time.sleep(random.randint(1,4))# print(current

【Hardware】i386、x86和x64的故事

牧云@^-^@ 提交于 2020-02-09 09:38:50
(1)x86的由来 x86架构 首度出现在1978年推出的Intel 8086中央处理器,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。在8086之后,Intel又推出了包括80186、80286、80386以及80486。 在设计上,这些后续的处理器使用的指令集都是在 8086 的基础上添加新支持的指令进行改进的,因此可以说都是 向下兼容(backward compatibility) 的,即能在8086上运行的程序在80486上也一定能运行。 向下兼容(Downward Compatibility) ,又称作 向后兼容(Backward Compatibility) ,指在 一个程序或者类库更新到较新的版本后,用旧的版本程序创建的文档或系统仍能被正常操作或使用 ,或在旧版本的类库的基础上开发的程序仍能正常编译运行的情况。例如较高档的计算机或较高版本的软件平台可以运行较为低档计算机或早期的软件平台所开发的程序 由于都是以86结尾(不过8088也是x86),所以把这一系列的指令集,称之为 x86指令集(架构) 。准确的来讲, x86 这一术语并不是指的某一个(具体CPU使用的)具体的指令集,而是在8086(的指令集)基础上发展而来的所有指令集的泛称 。 x86与CPU的位数无关,包括16位、32位、64位的CPU。 实际上

Linux操作系统简介2019.7.30

时光毁灭记忆、已成空白 提交于 2020-02-08 01:11:56
1.推荐两本书《数学之美》、《文明之光》 2.数据存储:磁盘(少量数据)、SAN、NAS、DAS三种架构(共享存储架构,用于云计算方向的运营运维)、分布式存储架构(运用于大数据的数据处理,例如HDFS)     HDFS——H(Hsdoop);D(定义);FS(系统)。共同组成HDFS分布式文件系统,只用于存储。  系统:linux操作系统  算法:map-reduces的数据处理集群(将海量数据按一定方式修改为键值关系)     通过数学+python=算法     数据可视化 3.IT行业的两个方向:运维、开发   运维:Linux操作系统(以windows为系统的——桌面工程师)       Linux运维(web架构)深入学习架构可搭配自己的网站       虚拟化(KVM或XEN)—openstack—docker(管理器k8s)—应用(云计算方向)       Hadoop+Java=大数据方向              spark(必须学scala语言)              HDFS分布式存储              map-reduces数据处理              Hive(必须学Sql语言)              Zookeeper   开发:计算机语言(最早的机械语言Basic语言)     C语言(最接近汇编语言的高级语言,一次编辑

IT知识架构与操作系统简介

非 Y 不嫁゛ 提交于 2020-02-07 23:43:25
IT知识架构: 1、云计算---大数据 2、算法 在数据储存中,所用 磁盘是共享 的,而磁盘又分为两类: 1、SAN、NAS、DAS(专门将数据储存与磁盘阵列)。 2、分布式储存架构(适合于大数据方向) HDFS----集群(用来储存数据的软件,应用软件)---(Hadoop定义的分布式文件系统) 系统(也可以比做冰箱) : Linux系统 (海量数据) 算法(也可以比做模具) 1、map-reduces的数据处理集群:总是将数据按照一定的方法修改为键值关系(key-value)。 HDFS+map-reduces=Hadoop集群(运行于Linux上的一个高性能集群) 2、通过数学(统计学)+Python=算法 3、数据可视化统计 云计算---大数据方向 1、运维---Linux操作系统(Windows桌面工程师)分为三点: 1)Linux运维(Web架构)(搭建自己的个人网站) 2)虚拟化KVM/XEN--------openstack--------- docker(k8s)云计算平台 3)Hadoop+JAVA=大数据储存方向 Hadoop生态圈如图: 开发方向(计算机语言) BASIC:早期的机械语言 CC++:系统开发、驱动开发、嵌入式开发(电路板)(驱动程度:需要转换各个厂家设备之间的指令集,让厂家设备之间互通) 前端:JS、php、css、html JAVA语言

基于Cortex-M3的简易操作系统——简易任务调度(一)

亡梦爱人 提交于 2020-02-07 23:27:26
一、引言 上一次简单的记录了一下我学习用Cortex-M3写一个最小调度系统的过程,但大多是图片的堆砌,所以现在准备写一个基于Cortex-M3的简易操作系统的系列,也算记录一下学习操作系统的过程。 本系列使用基于Cortex-M3内核的STM32F103RCT6作为平台 代码开源在gitee上,大家可以自行下载: https://gitee.com/dwk88/SimpleOS 二、预备知识 本文默认你学习并实际开发过Cortex-M系列的的单片机,例如:STM32,Tiva等,熟悉汇编知识 你还需要了解Cortex-M3包含的寄存器以及它们的功能 首先我们来思考一个问题:如何让多个任务同时进行(并行),例如:算法程序计算(长时间占用MCU)和数据传输、显示、外部控制 要知道我们的单核MCU是无法同时执行两条指令的,要并行运行多个任务必然要多个MCU,但那样协调性和成本都是问题。 我们做不到并行,所以折中的解决方案是使用一个调度程序,周期性的切换执行的任务。 三、时间片轮转调度算法 时间片轮转的意思是,以一个固定的时间周期,每隔一段时间就切换MCU执行的任务。 下面举一个列子: void task1(void) { while(1) { GPIO_PinWrite(LED_Red.port, LED_Red.num, 1); Delay_ms(500); GPIO