自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 Lniux学习心得

一学期的Linux课程结束了,从一开始只知道基本命令到现在能读懂一些内核源码,期间还是收获不少的。孟老师的课程最主要的还是让我们了解了进程的执行过程,就是一个进程如何装载到内存以及如何加载执行。一个进程的运行要有自己的堆栈和上下文。进程切换需要进程从用户态切换到内核态,进程的struct中有一个thread_info数据结构记录了所有有关该进程的上下文和堆栈信息。进程在创建的时候都是复制操作系统中

2016-04-30 20:21:16 417

原创 进程调度

进程调度的时机与进程的切换操作系统原理中介绍了大量进程调度算法,这些算法从实现的角度看仅仅是从运行队列中选择一个新进程,选择的过程中运用了不同的策略而已。 对于理解操作系统的工作机制,反而是进程的调度时机与进程的切换机制更为关键。进程调度的时机 1.中断处理过程(包括时钟中断、I/O中断、系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用sch

2016-04-17 10:55:18 567

原创 可执行程序的装载

ELF(Executableand Linking Format)可执行连接格式是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface(ABI)而开发和发布的。 在object文件中有三种主要的类型。一个可重定位(relocatable)文件保存着代码和适当的数据,用来和其他的object文件一起来创建一个可执行文件或者是一个共享文件。一

2016-04-10 21:52:36 496

原创 Linux如何创建一个进程?

一.进程概览首先,对于一个进程我们必须有对应描述其特征的结构体,在Linux中进程用一个task_struct结构体来解释。task_struct的相关描述在[task_struct结构体剖析](http://blog.csdn.net/npy_lp/article/details/7292563)中可以得到详细解释。该结构体就是操作系统中所提到的PCB,PCB是进程存在的唯一标识。二.进程的创建

2016-04-03 23:23:31 809

原创 系统调用

本次实验的主要内容就是实现系统调用,了解系统调用的实现方式! 系统调用:是操作系统为用户态进程与硬件设备进行交互提供的一组接口,系统调用通过软中断向内核发送一个明确的请求,一般每个系统调用对应一个封装例程,库在用这些例程定义出给用户的API API:API俗称应用编程接口(application program interface),只是一个函数定义 Linux系统调用需要三个步骤:

2016-03-20 17:22:38 357

原创 跟踪分析Linux内核的启动过程

在Linux操作系统中,系统的启动都是从start_kernel()这个函数开始的。start_kernel()是内核的汇编与C语言的交接点,在该函数以前,内核的代码都是用汇编写的,完成一些最基本的初始化与环境设置工作,比如内核代码载入内存并解压缩(现在的内核一般都经过压缩),CPU 的最基本初始化,为C代码的运行设置环境(C代码的运行是有一定环境要求的,比如stack的设置等)。这里一个不太确切的

2016-03-13 20:50:07 289

原创 简单的时间片轮转多道程序内核代码分析

本次实验模拟的是操作系统如何进行工作的,对于理解操作系统有很大的帮助。 本次实验主要有三个文件,mypcb.h、mymain.c、myinterrupt.cmypcb.h#define MAX_TASK_NUM 4 /*定义了最大任务数量*/#define KERNEL_STACK_SIZE 1024*8 //定义了内核堆栈的大小/* CPU-sp

2016-03-04 22:13:20 310

原创 计算机程序工作原理———简单c程序实例剖析

目前电子计算机的结构还是以冯·诺依曼提出的以程序存储和程序控制为基础的,其核心是存储程序。     对于我们程序员写出的程序我们将它存储到内存里面,内存有很多区域,如代码区,数据区,堆栈区等等。我们的代码会存储到代码区中,cpu通过总线与存储器进行连接,cpu中有很多寄存器,在x86中,有一个指令寄存器%eip用来指向下一次执行指令的地址,通过cs和%eip中的内容可唯一指向程序指令的地址。对

2016-02-25 18:39:19 2922

空空如也

空空如也

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

TA关注的人

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