云计算课程内容概述
本文件内容全部来自南京大学 云计算课程,2022秋季学期。感谢李传艺老师的倾情付出!
云计算概念定义
云计算是一种商业计算模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。
云计算是通过网络按需提供可动态伸缩的廉价计算服务
集中式计算和云计算异同分布式计算和云计算异同
云计算的发展推动力
性能+技术
网络带宽提升
技术成熟度
移动互联网的发展
服务+商业(让计算像水电一样好用)
数据中心的演变(理念的改变、技术的成熟、需求的增加)
经济因素(降低成本、节约资源、可持续发展)
大数据(存储和计算大数据的需求)
云计算架构
云计算三元认知论
一种商业模式
一种全新的商业模式,从产品提供的服务类型看,而非技术角度
在软件服务基础上提供平台和基础设施服务
一种计算范式
理论层面的实现方式,偏向针对商业模式的体系结构设计
一种实现方式
数据中心+云平台管理系统
开源对于云计算的意义云计算时代,开源不仅是一种开放源代码的具体产品,更是一种方法论、一种构造大规模复杂软件的协作方式。
开源体现了一个什么样的精神内涵
开 ...
操作系统 operating system 3
存储管理
该篇博客绝大多数内容基于计算机与操作系统-03-存储管理 | EagleBear2002 的博客,欢迎支持原作者
存储管理是操作系统的重要组成部分,负责管理计算机系统的重要资源——内存储器
内存空间一般分为两部分:
系统区:存放操作系统内核程序和数据结构等。
用户区:存放应用程序和数据。
存储管理包括以下功能:
存储分配:位进程分配内存空间以便运行,完成内存区的分配和去配工作。
地址映射:内存被抽象为一维或二维地址空间;逻辑空间到物理空间映射。
存储保护:系统隔离分配给进程的内存区,防止地址越界或操作越权。
存储共享:系统允许多个进程共享内存区。
存储扩充:形成虚拟存储器。
存储管理的基础逻辑地址
逻辑地址:又称相对地址,即用户编程所使用的地址空间
逻辑地址从零开始编号,有两种形式:
一维逻辑地址(地址)
二维逻辑地址(段号:段内地址)
段式程序设计
把一个程序设计成多个段:代码段、数据段、堆栈段等等
用户可以自己应用段覆盖技术扩充内存空间使用量,这一技术是程序设计技术,不是 OS 存储管理的功能:只是用一些段构成一个比较小的程序,然后动态来调整。
结合虚 ...
操作系统 operating system 2
第二章 处理器管理处理器与寄存器处理器
上图各组件通过内部总线连接起来,构成一个不包含通用寄存器、I/O相关寄存器、地址寄存器、数据寄存器和Cache的示意图。
CPU中的各组件描述
算数逻辑单元:计算结束之后会将结果的标志放置到标志寄存器 Flag 中。
控制单元:包含重要的指令译码器 ID,而指令是放置在指令暂存器 IR 中。
程序计数器 PC:下一条指令的地址
内存地址寄存器和内存数据寄存器:用来完成对内存数据的访问。
通过系统总线来访问内存中的数据,首先设置地址和数据,然后通过控制来完成数据的读取和写回。
时钟等外部信号来反应到处理器线程中来。
寄存器用户程序可见寄存器
减少访问主存储器次数,提高指令执行效率
所有程序可使用,包括应用程序和系统程序
数据寄存器:又称通用寄存器
地址寄存器:索引、栈指针、段地址等寄存器
程序与状态寄存器
用于控制处理器的操作
主要被具有特权的操作系统程序使用,以控制程序的执行
程序计数器PC:存储将取指令的地址
指令寄存器IR:存储最近使用的指令
条件码CC:CPU为指令操作结果设置的位,标志正/负/零/溢出等结果
标志位:中断位、中断 ...
操作系统 operating system (1)
操作系统 operating system (1)第一章 计算机系统计算机系统概述计算机技术的发展:
第一代电子管计算机
第二代晶体管计算机
第三代集成电路计算机
第四代大规模与超大规模集成电路计算机
计算系统的组成:
包括硬件和软件两个部分:
硬件系统:借助电、磁、光、机械等原理构造的各种物理不见的有机结合,是计算机系统工作的载体,包括处理器、存储器、I/O控制系统及外围设备;
软件系统:包括各类程序和文件,用于只会计算机系统按指定要求进行协同工作,包括系统软件、支撑软件和应用软件,其中最关键的系统软件是操作系统和语言处理程序。
计算机硬件系统
计算机硬件系统的组成冯诺依曼模型
计算机总线
内部总线:用于CPU芯片内部连接各元件
系统总线:用于连接CPU、存储器和各种I/O模块等主要部件
通信总线:用于计算机系统之间通信
中央处理器存储器
外围设备
输入设备
输出设备
存储设备
机机通信设备
计算机软件系统计算机软件系统的组成包括系统软件、支撑软件和应用软件三大组成部分。
系统软件
操作系统、实用程序、语言处理程序、数据库管理系统与专用文件系统。
操作系统实施对各种软硬 ...
Java SSM (1)
Spring 框架技术什么是JavaBean?JavaBean就是有一定规范的Java实体类,不同的是内部提供了一些公共的方法以便外接对该对象内部属性进行操作,不如set、get等。
IoC理论基础Inversion of Control 控制反转
借助于“第三方”实现具有依赖关系的对象之间的解耦。
对象A获得依赖对象B的过程,由主动行为变为了被动行为,控制权颠倒过来了,这就是“控制反转”这个名称的由来。
详见浅谈IOC–说清楚IOC是什么_ivan820819的博客-CSDN博客_ioc
使用IoC容器
代码整洁之道(1)
代码整洁之道(1)引言短短的两个月内,陆续的上手了两个规模还算大的前端和后端项目,其实两边都算是刚入门的水平,开发过程中其实也感受到了不少代码整洁所带来的好处。后端由于是有大佬带 + SpringBoot的后端项目结构很规范,所以类间关系的抽象和设计其实没遇到很大的问题,但是对于具体方法的实现,其实在代码的维护和可读性上还是遇到了一定的问题的。这个问题到了前端开发时问题就更加明显了,自己从零设计一个完整的项目耗费了我很大的精力,而且项目结构并不是很规范,在开发时其实翻来覆去重构了很多次,现在基本实现了功能的代码也有很多的“负债”。不管是组件间的抽象还是方法的抽象,都有很大的问题,所以愈发觉得这本书的意义之深。所以写下这个系列来记录一下这本书的学习过程。 ——2022/9/10
有意义的命名名副其实变量、函数或类的名称应该已经答复了所有的大问题。它该告诉你,它为什么会存在,它做什么事,应该怎么用。如果名称需要注释来补充,那就不算是名副其实。
在修改完命名后,我们能够通过变量名很容易的理解代码的语义。如果觉得使用int数组不够优雅且还不够直观,还可以自定义一个类 ...
前端学习踩坑(5)
前端学习踩坑(5)——更高级的手势需求引言经过上次与那个小滑块的斗智斗勇后,我对于Animated和PanResponder库的理解已经较为深刻了,所以在开发这次需求时,其实并没有花费太多时间和精力。并且现在这个需求还处于一个未完成的状态,目前只简单的整理一下手势检测的部分。
关于上次的小滑块和Animated和PanResponder的更多内容(更基础)可以参见下面链接:
前端学习踩坑(3) | LittleBlack
需求
其实这次并不算是设计给我出的难题,这应该算是一个最基本的照片裁剪功能。因为一些项目结构的特殊性,使得我不得不尝试自己从0开始写一个相关的功能。其中需求主要有以下几大难题:
中间透明外部渐变的框如何实现
图片显示和手势判断不在同一层(图片在底层,但是中间夹了框、按钮、导航栏等)
手势的实现(单指移动,双指缩放)
图片的裁剪(未实现)
实现中间透明外部渐变的框如何实现直接在scss中使用原生css中的渐变代码是没办法实现的,如果一定要用的话,可以使用RN的渐变库react-native-linear-gradient。
react-nat ...
前端学习踩坑(4)
前端学习踩坑(4)—— 自定义组件引言由于一些样式和功能的特殊要求,RN自带的很多组件已经无法满足我的开发要求了,所以我开始了项目RN组件库的初期搭建。
听起来很高大上,但是其实目前我的办法就是在项目里面新建一个组件,然后用接口约束props,在需求和现有组件的基础上自己封装一些组件出来,下面我就挑几个说说。
WCTextInput首先,我将组件实现功能所需要的props类型抽象为接口来进行约束:
由于设计的需求,实际上输入框分为三种类型:
输入框前面有提示的
密码类型的(多了是否可见的按钮 + 文本不可显示)
最普通的
一开始,我的想法是先使用最基本的View、TextInput、Text为基础封装一个最普通的输入框,并在普通的输入框上继续封装上述的两种较为复杂的输入框。但是在我和亲爱的mentor沟通过后,他给了我一个很好的思路。
其实没有必要封装那么多,是否有前面的提示完全可以自适应渲染。只有判断content不为空字符串的时候才会渲染,否则就直接不渲染那个Text。密码和普通的文字输入,也可以在props中添加一个type来修饰,这样大大减少了组件之间封装 ...
前端学习踩坑(3)
前端学习踩坑(3)——一个小滑块的开发过程需求在React-Native Expo项目中,需要一个可以拖动的滑块。但是:
滑块的可拖动范围需要被约束
滑块的拖动按钮为图片,且图片需要随着滑块所在点位的不同发生变化
滑块的拖动过程中,有一定数量的吸附点位,当松手后滑块应该自动吸附到最近的点位上
初探(4hours)看起来这么一个好看炫酷的组件,当我看到它的第一眼自然也是很喜欢的。
但是!!问题就在于开发是由我来负责的,这么一个小小的功能所要实现要涉及到的知识可不少啊。
早在设计评审之前,我就已经和设计的同学沟通了关于这个滑块的相关事宜。
看在他这么关心我的份上,开学当面感谢他的时候就少砍两刀吧
首先,我秉持着白嫖优先的原则,搜索了相关的RN开源组件。我发现了这么一个组件:
callstack/react-native-slider: React Native component exposing Slider from iOS and SeekBar from Android (github.com)
我兴奋的安装并上手测试了一下它,发现只需要一行import和一行&l ...
前端学习踩坑(2)
前端学习踩坑(2)
笔者这两天正在进行React基础的学习,涉及到的问题多为基础
React组件三大特性statestate是React.Component中已经定义好的一个属性,在我们继承React.Component并编写类式组件时,如果我们要改组件保存一些状态 / 属性,我们可以使用setState方法对基类中的state进行修改。state只能在类式组件中使用。
12345678910111213141516class Demo extends React.Component { constructor(props) { super(props); this.state = { stateOne : true, stateTwo : "mjmm" } } chanceState = () => { this.setState({ st ...