
操作系统
张先生123456
这个作者很懒,什么都没留下…
展开
-
操作系统内存管理---连续内存分区
操作系统中采用的内存管理方式: (1)重定位(relocation) (2)分段(segmentation) (3)分页(paging) (4)虚拟存储(virtual memory) 地址空间定义: 物理地址空间—硬件支持的地址空间 连续内存分配:给进程分配一块不小于制定大小的连续的物理内存区域。 内存碎片:空闲内存不能被利用—外碎片原创 2017-07-04 14:56:31 · 454 阅读 · 0 评论 -
RT-patch阅读记录
1.#define notrace _attribute_((no_instrument_function)) notrace如同GCC的-finstrument-functions() 参数的作用是在程序中加入hook,让它在每次进入和退出函数的时候分别调用这个函数 2.SMI:system manager interrupt interrupt. NMI:non-maskable inter原创 2017-07-17 21:50:24 · 980 阅读 · 0 评论 -
RT-5种模式
He goes through the following key points during the presentation:Real-time OS definition – Deterministic, does not mean fast (but still nice), meet deadlines. Goal of PREEMP_RT – 100% Preemptible kern原创 2017-07-26 21:21:58 · 1217 阅读 · 0 评论 -
Linux实时技术与典型实现分析-第 2 部分
Ingo Molnar 的实时补丁这是本系列文章(分两部分)的第 2 部分,详细分析了一个典型的实时实现(Ingo’s RT patch)。第 1 部分阐述了实时的概念、衡量实时性的指标,详细地分析了嵌入式系统对 Linux 实时性的需求以及 Linux 在实时性方面的不足,然后简单地描述了三个著名的 Linux 实时实现。 一、简介Ingo Molnar 的实时补丁是完全开源的,它采用的实时实现转载 2017-07-09 14:20:06 · 321 阅读 · 0 评论 -
文章标题
IPI:核间中断(Inter-Processor Interrupts,IPI)XLR 732 多核多线程处理器的中断由 PIC(Programmable Interrupt Controller)统一控制。PIC 允许一个硬件线程中断其他的硬件线程,这种方式被称为核间中断 (Inter-Processor Interrupts,IPI)。PIC 拥有一个宽度为 32 位的核间中断寄存器IPIBas原创 2017-07-26 18:03:41 · 161 阅读 · 0 评论 -
linux用户抢占和内核抢占
一、linux用户抢占linux用户抢占 当内核即将返回用户空间时,内核会检查need_resched是否设置,如果设置,则调用schedule(),此时,发生用户抢占。内核在thread_info的flags中设置了一个标识来标志进程 是否需要重新调度,即重新调度need_resched标识TIF_NEED_RESCHED。用户抢占的发生时机—-发生在用户空间的抢占现象。 从系统调用返回原创 2017-08-13 19:45:56 · 1123 阅读 · 0 评论 -
机制和策略
学习系统调用时,书上提到机制与策略,这也是陈老师与武特学长经常给我们强调的,这是一种设计模式,帮助我们理解操作系统的设计。下面的内容是从陈莉君老师的博客上copy下来的,写的很好,很通俗、透彻。 Unix/Linux的接口设计有一句通用的格言“提供机制而不是策略”。区别对待机制(mechanism)和策略(policy)是Unix设计中的一大亮点。大部分的编程问题都可以被切割成两个部分:“需要提供什转载 2017-10-27 09:20:08 · 3055 阅读 · 1 评论 -
centos7下修改windows默认启动顺序
转载地址:http://blog.youkuaiyun.com/q260864798/article/details/53502242 方法一(亲试有效) 一、修复引导win7: 1、执行: $ sudo vim /etc/grub.d/40_custom 得到打开文件后,执行a进行编辑,#!/bin/shexec tail -n +3 $0# This file provides an e...原创 2018-03-19 09:27:31 · 4686 阅读 · 0 评论 -
解决office2007打开很慢问题
office2007打开很慢或者出现“发送消息失败”并不是网上所说的注册表或者加载项的原因,主要的原因可能是你设置的默认打印机不可用(打印机关机),因此加载很慢。可以直接安装一个pdf虚拟打印机,将该打印机设置成默认打印机,或者从word设置不加载打印机(应该有该设置,但我没有设置,我用的前一种方法。),问题解决。我这可能是个例,没有解决的请找高手。...原创 2018-03-20 15:06:26 · 10612 阅读 · 0 评论 -
计算机硬盘分区介绍
当在 linux系统下,第一个硬盘是hd0,第二个硬盘是hd1.当说hd0的时候,hd0就是指硬盘,而 (hd0,0)表示第一个硬盘的C盘, 而D盘是从4开始的,例如D盘(hd0,4) ,E盘(hd0,5),F盘(hd0,6),主分区就是 (hd0,0)-(hd0,3)部分,或者这样表示hda1-hda4. 依次向后 。而在windows系统下,第一个硬盘分为hda,hdb,当接在硬盘接口在主板的...原创 2018-07-04 10:52:31 · 1331 阅读 · 0 评论 -
ubuntu密码输入正确但却不能进入系统
问题表现Ubuntu是应用广泛的Linux操作系统,特别是在机器学习应用中,通过调用NVIDIA显卡的GPU进行计算和研究的主要平台之一。但是由于NV显卡的存在,有可能会让Ubuntu在驱动加载上问题,造成开机启动无法进入系统。本人深受这个问题困扰,多次遇到这个问题额表现形式有:开机进入登录界面显示不正常,且出现即使输入正确用户名和密码也重新进入开机界(Login Loop)。此外,我遇到的...转载 2018-10-07 10:05:37 · 6905 阅读 · 0 评论 -
进程管理---进程
概念: 1、进程–处于执行起的程序,包括代码段(text section)、打开的文件、挂起的信号、内核内部数据、处理器状态、一个或多个具有内存映射的内存地址空间及一个或多个执行线程(thread of execution)、存放全局变量的数据段等。进程在Linux中通常也叫任务,该笔记会交替出现。 2、执行线程–简称线程(thread),是在进程中活动的对象。每个进程拥有一个独立的程序计数器、原创 2017-07-25 22:44:27 · 265 阅读 · 0 评论 -
内核的同步方法
1.原子操作—两个原子操作绝对不可能并发的访问同一个变量。 内核提供了两个原子操作接口:原子整数操作和原子位操作。原子整数操作:整数的原子操作只能对atomic_t类型的数据进行处理。原因:(1)可以确保原子操作只与这种特殊类型数据在一起。(2)保证该类型的数据不会被传递个任何非原子函数。(3)可以保证编译器不对相应的值进行访问优化。(4)在不同体系结构上实现原子操作的时候,使用atomic_t可原创 2017-07-21 22:50:13 · 267 阅读 · 0 评论 -
linux实时系统阵营
了解Xenomai过程中,对现阶段的RTOS进行总结如下:把现阶段的RTOS分成两个阵营: 非Linux阵营:VxWorks,RTEMS linux阵营 :RT-linux,Preempt-rt,WindRiver Linux,RTAI,Xenomai。下面重点介绍Linux阵营。RT-linux:应该是第一批实时性linux,可以提供硬实时,有两个版本,免费版和收费版,收费版最初由 FSM转载 2017-07-21 20:02:24 · 738 阅读 · 0 评论 -
x86架构系统启动过程
x86结构下操作系统启动: 计算机加电后,代码段寄存器CS=0xF000h,指令指针寄存器EIP=FFF0h,在CS寄存器中隐含的一个基址BASE=FFFF0000h,80386中实际地址是BASE+EIP=FFFF0000h+0000FFF0h=fffffff0h(在8086中最初执行的地址是PC=16×CS+IP,其实在GDB下调试ffffffff0h地址下的命令和ffff0地址处的命令相同,原创 2017-06-25 16:14:35 · 3635 阅读 · 0 评论 -
内存管理---非连续存储分配
连续分配缺点:必须连续,外碎片和内碎片,动态修改困难,内存利用效率低。 非连续目标:调高内存利用率和管理灵活性 (1)允许程序使用非连续地址空间 (2)允许共享代码与数据 (3)支持动态加载和动态链接 方法:段式存储管理(segmentation):同一段在内存中是连续的,段之间可以不连续。页式存储管理(paging):页与页之间是不连续的。 段式存储管理:进程的段地址空间由多个段组成,原创 2017-07-04 20:45:16 · 1208 阅读 · 0 评论 -
IO端口和IO内存访问
设备通常会提供一组寄存器来用于控制设备、读写设备和获取设备状态,即控制寄存器、数据寄存器和状态寄存器。这些寄存器可能位于I/O 空间,也可能位于内存空间。当位于I/O 空间时,通常被称为I/O端口,位于内存空间时,对应的内存空间被称为I/O 内存。 1.I/O 端口 常用接口有inb,outb,inw,outw,inl,outl。其中,in代表从指定端口读入数据,out代表向指定端口输出数据。b代表转载 2017-06-26 21:59:22 · 642 阅读 · 0 评论 -
ELF文件格式及其他
1.ELF全称Executable and Linkable Format,可执行连接格式,ELF格式的文件用于存储Linux程序。ELF文件(目标文件)格式主要三种类型:(1)可重定向文件(relocatable file):文件保存着代码和适当的数据,用来和其他的目标文件一起来创建一个可执行文件或者是一个共享目标文件。(目标文件或者静态库文件,即linux通常后缀为.a和.o的文件) 注:o:原创 2017-06-27 20:43:00 · 1282 阅读 · 0 评论 -
内核同步介绍
一. 临界区和竞争条件 临界区:(临界段)访问和操作共享数据的代码段。 单个变量:多数处理器都提供了指令来原子地读变量,增加变量,然后再写回变量,使用这样的指令就能解决一些问题。两个原子操作交错执行根本就不可能发生,因为处理器会从物理上确保这种不可能。内核也提供了一组实现这些原子操作的借口。 二.加锁 我们需要一种方法确保一次有且只有一个线程对数据结构进行操作,或者原创 2017-07-07 10:05:18 · 233 阅读 · 0 评论 -
CPUIDLE 之低功耗定时器
在 Linux 操作系统中,Idle 进程(又叫 Swapper 进程)的 pid 号是 0,是所有进程的祖先,它是在 Linux 初始化阶段从无到有创建的一个内核线程。stark_kernel() 函数初始化内核需要的所有数据结构,激活中断,创建另一个叫进程 1 的内核线程(init 进程)。新创建内核线程的 PID 为 1,并与进程 0 共享进程所有的内核数据结构。创建 init 进程后,进程转载 2017-07-18 08:43:54 · 1612 阅读 · 0 评论 -
加载地址和链接地址
在运行boot loader时,boot loader中的链接地址(虚拟地址)和加载地址(物理地址)是一样的。但是当进入到内核程序后,这两种地址就不再相同了。 操作系统内核程序在虚拟地址空间通常会被链接到一个非常高的虚拟地址空间处,比如0xf0100000,目的就是能够让处理器的虚拟地址空间的低地址部分能够被用户利用来进行编程。 但是许多的机器其实并没有能够支持0xf0100000这种地址那么大原创 2017-07-09 14:19:25 · 1210 阅读 · 0 评论 -
Linux 实时技术与典型实现分析, 第 1 部分: 介绍
一、实时的概念 所谓实时,就是一个特定任务的执行时间必须是确定的,可预测的,并且在任何情况下都能保证任务的时限(最大执行时间限制)。实时又分软实时和硬实时,所谓软实时,就是对任务执行时限的要求不那么严苛,即使在一些情况下不能满足时限要求,也不会对系统本身产生致命影响,例如,媒体播放系统就是软实时的,它需要系统能够在1秒钟播放24帧,但是即使在一些严重负载的情况下不能在1秒钟内处理24帧,也是可以接转载 2017-07-09 14:20:59 · 281 阅读 · 0 评论 -
为什么Linux内核不允许在中断中休眠?
我以前一直以为 Linux 内核之所以不允许在中断中休眠是因为中断上下文中无法获取 thread_info,task_struct 等进程相关的结构体,从而无法调度。 今天又重新看了一下相关的代码,发现实际上不是。在最新的代码中,x86 32 使用的 irq stack 中也保存了thread_info,我们可以看 execute_on_irq_stack() 的定义: [c] union i转载 2017-07-10 09:21:31 · 1338 阅读 · 0 评论 -
中断上下文不能做的事情
美团面试的时候,突然面试官有问到我为什么中断上下文不能睡眠,当时不了解,后来上网搜搜,发现各种说法:进程上下文: 通过系统调用,用户空间的应用程序就会进入内核空间,由内核代表该进程运行于内核空间,这就涉及到上下文的切换,用户空间和内核空间具有不同的地址映射,通用或专用的寄存器组,而用户空间的进程要传递很多变量、参数给内核,内核也要保存用户进程的一些寄存器、变量等,以便系统调用结束后回到用户空间继续转载 2017-07-21 19:45:00 · 675 阅读 · 0 评论 -
编译caffe出现的错误
原创 2018-10-09 07:53:40 · 347 阅读 · 0 评论