Numpy是以矩阵为基础的数学计算模块,纯数学。 Scipy基于Numpy,科学计算库,用于数学、科学、工程领域。可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。有一些高阶抽象和物理模型。比方说做个傅立叶变换,这是纯数学的,用Numpy;做个滤波器,这属于信号处理模型了, …

阅读全文 »

  1、功能不同 Scikit-learn(sklearn)的定位是通用机器学习库,而TensorFlow(tf)的定位主要是深度学习库。 一个显而易见的不同:tf并未提供sklearn那种强大的特征工程,如维度压缩、特征选择等。究其根本,我认为是因为机器学习模型的两种不同的处理数据的方式: 传统机 …

阅读全文 »

一切技术的出现都是为了解决现实问题,而现实问题分为简单问题和复杂问题。简单问题,需要简单分析,我们使用数据分析。复杂问题,需要复杂分析,我们使用机器学习。 1、什么是简单问题? 比如公司领导想知道每周的销售情况,这种就是简单问题。简单问题可以用数据分析来处理,通过分析数据来分析出有用的信息。 最简单 …

阅读全文 »

本文已收录于 清华大学操作系统课程笔记 系列,共计 9 篇,本篇是第 9 篇

文件系统和文件 打开文件和文件描述符 文件描述符是打开的文件在内存中维护的相关信息。 文件描述符 只读、可读可写。 文件的用户视图和系统视图:文件从用户、系统的角度来看是什么样的 通常是几个扇区构成一个数据块。 用户视图 系统视图的转换 磁盘的最小访问单元是块。 文件系统最小的访问单位是数据块。 即 …

阅读全文 »

本文已收录于 清华大学操作系统课程笔记 系列,共计 9 篇,本篇是第 1 篇

操作系统的结构 参考孙志岗笔记。 ucore基本采取分层结构,划红线的部分是我们要学的。 外核结构(虚拟机架构) 硬件之上假设VM虚拟机。 ucore有一万行左右。最后我们能实现一个小的教学操作系统。  

在上学的时候,老师讲到进程与线程的时候可能是这样讲的: 进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单元,是应用程序运行的载体。 线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。一个进程可以有 …

阅读全文 »

本文已收录于 清华大学操作系统课程笔记 系列,共计 9 篇,本篇是第 5 篇

处理机调度 处理机调度概念 处理机调度 调度时机 非抢占系统 可抢占系统 调度准则 调度策略:从就绪队列中选择进程 实现调度策略 例如在前面的缺页置换算法中,指标就是缺页的次数。 解释上图:我们发现,CPU执行一个计算,它的耗时通常在8ms以内,这就是我们分配时间片的重要依据。如果分配的时间片大于8 …

阅读全文 »

本文已收录于 清华大学操作系统课程笔记 系列,共计 9 篇,本篇是第 3 篇

虚拟存储(虚存) 在非连续内存分配之上实现将内存暂存到磁盘中,实现应用程序可使用更多的内存空间,有点像linux中的swap。 覆盖技术 dos系统,程序员自己写覆盖控制。开发难度增加。 交换技术 以进程为单位的交换技术: 局部性原理 操作系统决定什么东西换出,什么换入。与后面的页置换算法有关。 如 …

阅读全文 »

本文已收录于 清华大学操作系统课程笔记 系列,共计 9 篇,本篇是第 2 篇

计算机体系结构和内存层次 存数据的地方:CPU里的寄存器、内存、外存。 32位机器也就是可以一次性从内存中读写32位(4字节)数据。 详情查询: 内存层次 通过MMU(Memory Management Unit,内存管理单元)来作为虚拟(逻辑)地址和物理地址之间的枢纽。 抽象:逻辑地址空间 保护: …

阅读全文 »

本文已收录于 清华大学操作系统课程笔记 系列,共计 9 篇,本篇是第 8 篇

死锁 资源类型: 资源分类 分为两类资源:可重用资源和消耗资源(一次性) 可重用资源举例: 消耗资源举例: 资源分配图 描述资源和进程之间的分配和占用的关系:资源分配图 此种简单的情况可以从资源分配图中看到。但实际上的操作系统不能这么看 仅仅依靠循环来看死锁不能行。 死锁处理方法 由进程处理死锁,操 …

阅读全文 »