Linux将虚拟地址空间划分为两个部分,分别称为内核空间和用户空间 各个系统进程的用户空间是完全彼此分离的,而虚拟地址空间顶部的内核空间总是同样的,无论当前执行的是哪个进程. 尽管Intel处理器区分4中特权级别,当Linux只使用两种不同的状态:核心态和用户态.两种状态的关键差别在于对高于TASK_SIZE的内存区域的访问. 在中断上下文中运行不能访问虚拟地址空间中的用户空间部分.CPU大多数时间都在执行用户空间的代码,当应用程序执行系统调用时,则切换到核心态,内核将完成其请求.在此期间,内核…
//C语言学习笔记 第一讲 C语言概述 第二讲 基本编程知识 第三讲 运算符和表达式 第四讲 流程控制 第五讲 函数 第六讲 数组 第七讲 指针 第八讲 变量的作用域和存储方式 第九讲 拓展类型 第十讲 专题: 字符串的处理 进制转换 补码 动态内存分配 综合应用:链表的使用 一.C语言概述 .为什么要学习C语言 ). C的起源和发展 机器语言->汇编语言->高级语言 机器语言: 执行速度最快 汇编语言:ADD AX,BX 高级语言:a+b 速度最慢 高级语言->结构化思想 {C.Bas…
进程调度程序是多任务操作系统的基础,它是确保进程能有效工作的一个内核子系统,负责决定哪个进程投入运行.何时运行以及运行多长时间.只有通过进程调度程序的合理调度,系统资源才能够最大限度地发挥作用,多进程才会有并发执行的效果.在一组处于可运行状态的进程中选择一个来执行,是调度程序所需完成的基本工作. 在前期的 Linux 版本中,Linux 的调度程序都相当简陋,设计近乎原始,虽然容易理解,但是在可运行进程多或者多处理器的环境下都难以胜任.在 Linux2.5 系列内核中,开始采用一种叫做 O(1)…
作为Linux开发爱好者,从事linux 开发有三年多时间.做过bsp移植,熟悉u-boot代码执行流程:看过几遍<linux 设备驱动程序开发>,分析过kernel启动流程,写过驱动,分析过网卡驱动,制作过文件系统.但,仍无法对kernel有全局认识.为了更清晰的展示kernel概念,结构,实现,以思维导图的形式记录关键点,以便以记忆.增强理解.该部分主要讲系统调用的实现,如何有用户态切换至内核态,内核态切换至用户态及切换过程中的参数和数据传递.…
linux程序存放位置linux主要有一下几个存放程序的目录: /bin    系统启动程序目录 /usr/bin 用户使用的标准程序 /usr/local/bin   用于存放软件安装目录 /usr/sbin /sbin 系统服务 /opt 可选操作系统组件以上路径存放在$PATH环境变量中. linux头文件存放位置 /usr/include /usr/include/sys /usr/include/linux使用gcc编译时可以通过-I参数指定非标准目录的头文件,如gcc -I/usr/…
2.1进程优先级 进程优先级 硬实时进程 软实时进程 抢占式多任务处理 2.2进程生命周期 用户太切换到核心态的办法 系统调用 中断 抢占调度模型优先级普通进程<系统调用<中断 普通进程可以被系统调用和中断抢占 系统调用只有可能被终端抢占 中断不能被任何操作打断 我的博客:www.while0.com…
并发编程的术语 并发 同时做多件事情 多线程 并发的一种形式,它采用多个线程来执行程序. 多线程是并发的一种形式,但不是唯一的形式. 并行处理 把正在执行的大量的任务分割成小块,分配给多个同时运行的线程. 并行处理是多线程的一种,而多线程是并发的一种. 异步编程 并发的一种形式,它采用future模式或回调(callback)机制,以避免产生不必要的线程. 一个 future(或 promise)类型代表一些即将完成的操作.在 .NET 中,新版 future 类型有 Task 和 Task .…
1.HTTP(Hypertext Transfer Protocol,超文本传输协议)是在万维网上进行通信时所使用的协议方案,HTTP是应用层协议,无需关心网络通信的细节,细节交给了传输层协议TCP/IP,HTTP协议位于TCP的上层,HTTP使用TCP来传输其报文数据 2.在客户端向服务器发送报文前,需要用网际协议(Internet Protocol, IP)地址和端口号在客户端和服务器之间建立一条TCP/IP连接,所以需要知道服务器的IP地址及在服务器上运行的特定软件相关的TCP端口号.所以…
Android群英传笔记--第一章:Android体系与系统架构 图片都是摘抄自网络 今天确实挺忙的,不过把第一章的笔记做一下还是可以的,嘿嘿 1.1 Google的生态圈 还是得从Android的起源说起,Android是一个以Linux为基础的开源移动设备操作系统,主要用于智能手机和平板电脑,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发中.Android已发布的最新版本为Android 6.0.1(M). Android系统最初由安…
Linux内核分析第四章 读书笔记 第一部分--进程调度 进程调度:操作系统规定下的进程选取模式 面临问题:多任务选择问题 多任务操作系统就是能同时并发地交互执行多个进程的操作系统,在单处理器机器上这会产生多个进程在同时运行的幻觉,在多处理器机器上,这会使多个进程在不同的处理机上真正同时.并行地运行.无论在单处理器或者多处理器机器上,多任务操作系统都能使多个进程处于堵塞或者睡眠状态,也就是说,实际上不被投入执行,直到工作确实就绪. 多任务系统可以划分为两类:非抢占式多任务和抢占式多任务.Linu…