自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 项目开发总结

项目开发总结

2022-11-16 12:54:43 390

原创 进程(二)------进程调度

    进程调度是在可运行进程之间分配有限的处理器时间资源的内核子系统,原则是最大限度地利用处理器时间,工作是在一组处于可运行状态的进程中选择一个来执行。    多任务操作系统能同时并发地交互执行多个进程,分为抢占式多任务和非抢占式多任务。在抢占式多任务模式下,调度程序会强制挂起某个进程,该动作称为抢占。进程在抢占之前能够运行的时间是预

2021-12-02 14:57:24 719

原创 进程(一)------进程管理

用户使用计算机的接口是用户程序,进程管理是所有操作系统的心脏,linux也不例外。一、进程1.进程描述进程是正在执行的程序代码的实时结果。为表示正在运行的程序,进程除了包含可执行程序代码,还需要包含其他资源:进程包含的其他资源打开的文件挂起的信号内核内部数据处理器状态一个或多个具有内存映射的内存地址空间及一个或多个执行线程存放全局变量的数据段执行线程是进程中活动的对象,内核调度的对象是线程而不是进程。每个线程都拥有一个独立的程序计数器

2021-11-26 12:23:28 586

原创 内核同步(二)

一、 原子操作原子操作是其他同步方法的基石,可以保证指令以原子的方式执行------执行过程不被打断。内核提供两组原子操作接口--------一组针对整数操作,一组针对位操作。大多数体系结构提供支持原子操作的简单算数指令或为单步执行提供了锁内存总线的指令(确保其他改变内存的操作不能同时发生)。1.原子整数操作针对整数的原子操作只能对atomic_t类型的数据进行处理。使用原子整型操作需要的声明在<asm/atomic.h>文件中,所有体系结构都保证内核使用到的所有操作的最小集。如果要

2021-11-25 09:27:17 300

原创 内核同步(一)

并发访问共享数据是造成系统不稳定的一类隐患,而且这种错误难以跟踪和调试,所以处理内核并发问题非常重要。产生并发的原因---->解决办法----->解决办法存在的问题产生并发的原因中断----中断几乎可以在任何时刻异步发生,可能随时打断当前正在执行的代码。软中断和tasklet----内核能在任何时刻唤醒或调度软中断和tasklet,打断当前正在执行的代码。睡眠及与用户空间的同步----在内核执行的进程可能会睡眠,这会唤醒调度程序,从而导致调度一个新的用户进程执行。内核抢占----内

2021-11-22 14:30:00 181

原创 进程地址空间

linux内核除了需要管理自身的内存,还需要管理用户空间进程的内存----------进程地址空间。linux内核采用虚拟内存技术,系统中的所有进程之间以虚拟方式共享内存。对一个进程而言,它好像可以访问整个系统的所有物理内存。一、地址空间进程地址空间由进程可寻址的虚拟内存组成。现代采用虚拟内存的操作系统通常都使用平坦地址空间而不是分段式的内存模式。内存地址4021f000表示的是进程32位地址空间中的一个特定字节,尽管一个进程可以寻址4GB的虚拟内存,但我们只关心有权访问的地址区间如08048000-

2021-11-10 16:33:23 1387

原创 块I/O层

用户访问数据时,不是直接访问硬盘,而是访问文件系统(更准确的是VFS层),VFS层负责和应用程序打交道。文件系统层将物理结构的数据抽象成便于用户理解的逻辑结构,为用户屏蔽底层硬件的实现细节。用户通过文件系统提交访问数据的请求后,文件系统再将该请求送至块I/O层,通过块I/O层实现对硬盘数据的访问。

2021-11-04 14:38:56 146

原创 内存管理(三)

二、栈上的静态分配三、高端内存的映射四、每个CPU的分配新的每个CPU接口使用每个CPU数据的原因

2021-09-24 14:11:55 49

原创 内存管理(二)

一、slab层提出原因为了便于数据的频繁分配和回收,经常用到空闲链表。当代码需要一个新的数据结构实例时,就可以从空闲链表中抓取一个,而不需要分配内存,再把数据放进去。当不再需要这个数据结构的实例时,就把它放回空闲链表,而不是释放它。空闲链表相当于对象高速缓存(快速存储频繁使用的对象类型)。内核提供slab层扮演通用数据结构缓存层的角色,有效解决空闲链表不能全局控制的问题。slab结构不同对象分属于不同高速缓存组,每种对象对应一个高速缓存。kmalloc接口就是在slab层的一组通用高速缓存上

2021-09-24 13:22:44 73

原创 内存管理(一)

一、内存管理1.1 页和区1 页内核把物理页作为内存管理的基本单位。从虚拟内存角度看,页就是最小单位。MMU以页为单位管理系统中的页表,把虚拟地址转换为物理地址。内核用struct page结构管理系统中的所有页。page结构与物理页相关,并非与虚拟页相关,该结构目的在于描述物理内存本身。内核需要知道一个页是否空闲,如果空闲内核还需要知道谁拥有这个页。拥有者可能是用户空间进程、动态分配内核数据、静态内核代码或页高速缓存等。struct page { unsigned long.

2021-09-17 14:17:06 84

原创 页高速缓存和页回写(二)

页高速缓存的结构体页高速缓存可以缓存任何基于页的对象,包含各种类型的文件和各种类型的内存映射。address_space为维持页高速缓存的普遍性,不应该将其绑定到物理文件或者inode结构体,linux使用了一个新对象管理缓存项和页I/O操作------address_space结构体。该结构体是vm_area_struct虚拟地址的物理地址对等体。文件可以有多个虚拟地址,但物理内存只有一份,只能有一个address_space数据结构。struct address_space {...

2021-09-07 17:31:09 127

原创 页高速缓存和页回写(一)

缓存写入进程写磁盘时,缓存有三种策略不缓存:高速缓存不去缓存任何写操作,当写入时直接跳过缓存,写到磁盘,同时使缓存中数据失效。写透:自动更新内存缓存,同时更新磁盘文件,有利于保持缓存一致性。回写 :将页高速缓存中被写入的页面标记成“脏”,并加入到脏页链表。由回写进程周期性将脏页写到磁盘。清理“脏”页标识。方便合并更多数据再一次刷新。缓存回收缓存内容需要置换,清除内容为更重要缓存项腾出位置,需要确定缓存中内容被清除的策略即缓存回收策略。先选择干净页进行简单替换,不够再进行回写...

2021-09-07 14:48:37 393

原创 1.内核调试

一个bug,藏匿bug的内核版本,相关内核代码的知识一、内核中的bug不好重现;症状多样;从隐藏在源码中的错误到目击者面前的bug,中间经历了一系列连锁反应。二、调试方法1.打印方式(1)通过打印调试可以在中断上下文和进程上下文,在任何持有锁被调用,在多处理器上同时被调用,而且调用者连锁都不必使用。内核消息被保存在一个LOG_BUF_LEN大小的环形队列中 用户守护进程klogd读记录缓冲区获取内核消息,可以从/proc/kmsg文件中,也可以通过syslog()系统调用读取.

2021-09-02 09:59:49 154

原创 mybatis

概述持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。定制化SQL存储过程高级映射接口和 Java 的 POJO可以使用简单的 XML 或注解映射成数据库中的记录。从一个xml配置文件或者一个预定义的配置类的实例获得SqlSessionFactoryBuilder,进而获得一个SqlSessionFactory实例,进而供每个MyBatis应用程序使用。用xml文件构建SqlSessionFacto

2020-08-27 11:18:30 211

原创 spring及springboot

Spring框架Spring框架一、控制反转(IOC)特性二、容器三、面向切面编程(AOP)框架SpringBoot一、重要策略二、基本架构设计Spring框架一、控制反转(IOC)特性方便项目维护和测试,Java的反射机制对Java对象进行统一的配置和管理的方法。二、容器管理对象的生命周期,通过扫描XML文件、类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。三、面向切面编程(AOP)框架SpringAOP框架基于代理模式,同时运行时可配置。Sprin

2020-08-27 10:27:00 719

原创 mysql使用-修改密码

登陆mysqlmysql -u root -p执行以下两个命令将密码设置为最低级别set global validate_password_policy=0; Mysql的密码级别有三种,0级别,1级别,2级别。0级别允许是纯数字1级别必须包含数字和字母2级别必须数字,大小写字母都包含设置密码长度短于8个字符set global validate_password_length=4; 大小写字母都包含不管你设置 1、2、3、4,最低长度都是 4。设置密码set p

2020-08-20 10:42:51 122

原创 map使用注意事项

STL的map表里有一个erase方法用来从一个map中删除掉指令的节点eg1:map<string,string> mapTest;typedef map<string,string>::iterator ITER;ITER iter=mapTest.find(key);mapTest.erase(iter);像上面这样只是删除单个节点,map的形为不...

2019-04-18 15:53:01 655

转载 八大数据结构

常见的数据结构如何选择合适的数据结构,向量、栈、队列、链表如何区分?首先列出一些最常见的数据结构,我们将逐一说明:数组、栈、队列、链表、树、图、字典树(这是一种高效的树形结构,但值得单独说明)、散列表(哈希表)数组数组是最简单、也是使用最广泛的数据结构。栈、队列等其他数据结构均由数组演变而来。下图是一个包含元素(1,2,3和4)的简单数组,数组长度为4。每个数据元素都关联一个...

2019-02-28 10:09:55 679

原创 CentOS 更新yum源

将yum源设置为国内yum源,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。国内源:可以使用wget获取或者直接下载网易:Centos5: http://mirrors.163.com/.help/CentOS5-Base-163.repoCentos6: http://mirrors.163.com/.help/CentOS6-Base-163.repoC...

2018-09-17 12:51:25 897

原创 centos如何自建可以对外提供服务的yum源并添加自定义rpm软件包

1、  关闭SELinux和iptables2、首先安装  yum install createrepo3、创建存放软件包的目录mkdir -p /data/yum/centos/6/{i386,x86_64}# mkdir -pv /var/www/html/centos/6/x86_64# chown -R apache.apache /var/www/html4、  创建元数据,生成repo...

2018-06-18 22:43:01 1341

转载 数据挖掘与数据分析的主要区别是什么?

数据分析只是在已定的假设,先验约束上处理原有计算方法,统计方法,将数据分析转化为信息,而这些信息需要进一步的获得认知,转化为有效的预测和决策,这时就需要数据挖掘,也就是我们数据分析师系统成长之路的“更上一楼”。 数据挖掘与数据分析两者紧密相连,具有循环递归的关系,数据分析结果需要进一步进行数据挖掘才能指导决策,而数据挖掘进行价值评估的过程也需要调整先验约束而再次进行数据分析。 ...

2018-05-27 14:50:51 10714

转载 数据库 与 数据仓库的本质区别是什么?

数据库:传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。数据仓库:数据仓库系统的主要应用主要是OLAP(On-Line Analytical Processing),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。我尝试着再补充些具体的事例来说明,这样更可以帮助大家更好理解一些。举个最常见的例子,拿电商行业来说好了。基本每家电商公司都会经历,从只需要业务数据...

2018-05-27 14:43:18 2172

转载 linux内存分配方法总结

内存映射结构:1.32位地址线寻址4G的内存空间,其中0-3G为用户程序所独有,3G-4G为内核占有。2.struct page:整个物理内存在初始化时,每个4kb页面生成一个对应的struct page结构,这个page结构就独一无二的代表这个物理内存页面,并存放在mem_map全局数组中。3.段式映射:首先根据代码段选择子cs为索引,以GDT值为起始地址的段描述表中选择出对应的段描述符,随后根...

2018-04-24 20:02:01 1976

转载 vmstat命令性能监测与优化

vmstat命令的含义为显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。语法vmstat(选项)(参数)选项-a:显示活动内页;-f:显示启动后创建的进程总数;-m:显示slab信息;-n:头信息仅显示一次;-s:以表格方式显示事件计数器和内存状态;-d:报告磁盘状态;-p:显示指定的硬盘分区状态;-S:输出...

2018-03-29 10:57:48 469

原创 nfs server配置

1、修改nfs支持版本root@ubuntu:~# vi /etc/default/nfs-kernel-server C# Number of servers to start upRPCNFSDCOUNT="32(线程数) --no-nfs-version 4"root@ubuntu:~# cat /proc/fs/nfsd/versions +2 +3 -4 -4.1 -4.22、重启nfs...

2018-03-21 13:48:29 2270 1

转载 存储系统性能影响因素(1)---文件系统-----freenas的ZFS和RAID技术

ZFS文件系统的英文名称为Zettabyte File System,也叫动态文件系统(Dynamic File System),是第一个128位文件系统。最初是由Sun公司为Solaris 10操作系统开发的文件系统。作为OpenSolaris开源计划的一部分,ZFS于2005年11月发布,被Sun称为是终极文件系统,经历了 10 年的活跃开发。而最新的开发将全面开放,并重新命名为 OpenZF...

2018-03-21 09:38:03 2728

转载 存储系统性能影响因素(2)---固态硬盘

CPU影响SSD性能这里说的CPU影响SSD性能并不是说CPU性能太差,拖慢了SSD,而是CPU的节能功能,CPU降低功耗本身是主流,处理器厂商也为其设计了很多功能,但当人们启动这些功能的时候,SSD就很容易受到影响了。CPU开启节能选项之后,除了可能降低CPU频率,同时可能降低外部总线接口单元的运行速度。而CPU正是通过主板BIOS的节能选项来影响SSD的性能。CPU节能模式的确能比较智能地根据...

2018-03-14 16:01:50 904

原创 存储系统性能影响因素(1)---文件系统

文件系统的inode分配及数量、文件搜索方式如HTree、文件读写方式如COW或WAL (write-ahead-log)会影响存储性能。Btrfs文件系统就是采用了CoW以及Transaction的机制保证了数据的一致性。----------------------------------------------------------------------------------------...

2018-03-14 14:36:16 1026

原创 新型存储器大剖析

http://www.ednchina.com/news/article/20170727memory

2018-03-14 14:03:37 679

原创 3D Xpoint和3D NAND

3D Xpoint的秘密http://ee.ofweek.com/2017-02/ART-8500-2812-30099905_5.htmlhttp://www.sohu.com/a/146000243_5057953D NANDhttp://www.sohu.com/a/155267427_7858353D XPoint 相比 3D NAND Flash 有什么不同?https://www.zh...

2018-03-14 13:59:22 1516

转载 RAM,SRAM,DRAM,SDRAM,DDR RAM,ROM,PROM,EPROM,EEPROM,NAND FLASH,NOR FLASH的区别

SRAM是Static Random AccessMemory的缩写,中文含义为静态随机访问存储器,它是一种类型的半导体存储器。“静态”是指只要不掉电,存储在SRAM中的数据就不会丢失。这一点与动态RAM(DRAM)不同,DRAM需要进行周期性的刷新操作。然后,我们不应将SRAM与只读存储器(ROM)和Flash Memory相混淆,因为SRAM是一种易失性存储器,它只有在电源保持连续供应的情况下...

2018-02-12 03:52:05 1126

原创 powerpc t4240rdb &marvell 3240调试

网卡分为两个层次:MAC+PHY一般说来,MAC就是网络控制器,如果该驱动OK,就能看到ifconfig信息;PHY是物理层,负责发送和传输的底层,如果PHY发生问题,ifconfig同样有信息,只有up时才会连接PHY。MAC和PHY通过MII接口传输以太网数据,通过MDIO接口访问PHY的配置寄存器。

2018-01-24 17:25:19 451

转载 能否用带选项的gcc解决big endian有关问题

能否用带选项的gcc解决big endian问题?有一段从其他移植过来的代码,如果在vxwork上执行,会有大小字节序的问题,请问能否用带选项的gcc来解决endian?比如-mbig之类的,如果解决不了,只能用修改source的方法了,工作量是在太大,各位能否帮忙解决gcc的问题?------解决方案--------------------我理解,带选项的gc

2018-01-12 14:26:48 1575

转载 Disable NFSv4 (server) on Debian, allow NFSv3

问题:How can the NFS server on a Debian 8 system be limited to NFSv3?By default, shares can be mounted with both vers=3 and vers=4./etc/default/nfs-kernel-server:# To disable NFSv4 on the

2018-01-12 14:00:57 944

转载 powerpc编译lvm2问题

问题:Error log:| lvm.c: In function 'lvm_shell':| lvm.c:189:38: error: 'CPPFunction' undeclared (first use in this function)| rl_attempted_completion_function = (CPPFunction *) _completion;|

2018-01-06 10:49:26 244

转载 LINUX下EXT3文件系统大小有2T限制

因为ext3的inode使用32的地址指针以及3次间接指针,这样单个文件的大小最多为2^10*2^10*2^10*2^11,也就是2的41次方,即在32系统上并使用4k块大小时,单个文件最多是8TB。由于使用32位的地址长度,ext3最多支持的磁盘大小为2^31*4K,即8TB(inode号是有符号int的变量,所以是2^31)。    由于当今磁盘阵列的发展,已经出现了超过8TB的磁盘阵列,

2017-12-14 17:30:30 3085

转载 linux下使用parted工具划分大于2T的分区

MBR和2TB的限制在使用fdisk建立分区时,我们最大只能建立2TB大小的分区,如果你的磁盘(阵列)大于2TB,只能通过划分多个分区的方法才能充分利用磁盘容量,这对于使用小于2TB分区的朋友没啥影响,但对于使用大于2TB分区(比如5TB的分区)的朋友就会遇到问题了,要突破这个限制;我们先来了解下MBR(Master Boot Record)和GPT(GUID Partition Table)

2017-12-14 17:28:23 785

转载 Linux下常见文件系统的对比

本文将对Linux下常见的几种文件系统进行对比,包括ext2、ext3、ext4、XFS和Btrfs,希望能帮助大家更好的选择合适的文件系统。内容来自于网上找的资料以及自己的一些经验,能力有限,错误在所难免,仅供参考历史文件系统创建者创建时间最开始支持的平台ext2Rémy Card1993Linux,Hu

2017-12-14 17:15:59 5568

转载 linux内核和文件系统格式、制作及说明

文件格式:vmlinux(vmlinuz)\.img\uImage制作工具:make zImage;make bzImage\mkinitrd\make uImage-----------------------------------------------------------------------------------------------------------------

2017-12-14 15:10:18 569

转载 linux根文件系统挂载过程

initramfs当linux内核启动后,会找到并执行第一个用户程序,一般是init。这个程序存在于文件系统当中,文件系统存在于设备上,但不知道init存在哪个设备上,于是有了内核命令列选项root=,用来指定root文件系统存在于哪个设备上。然后由于后来的设备类型越来越来多,比如可能在scsi,sata,flash这些设备,还有的存在于网络设备上,不可能把这些设备的驱动编译进内核

2017-12-14 13:11:15 907

两个矩阵的中心卷积和普通卷积

矩阵与矩阵的二维卷积 矩阵与数组的卷积 数组与数组的卷积 数组与矩阵的卷积

2009-01-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除