Linux读书笔记第三、四章】的更多相关文章

第三章 主要内容: 进程和线程 进程的生命周期 进程的创建 进程的终止 1. 进程和线程 进程和线程是程序运行时状态,是动态变化的,进程和线程的管理操作(比如,创建,销毁等)都是有内核来实现的. Linux中的进程于Windows相比是很轻量级的,而且不严格区分进程和线程,线程不过是一种特殊的进程. 所以下面只讨论进程,只有当线程与进程存在不一样的地方时才提一下线程. 进程提供2种虚拟机制:虚拟处理器和虚拟内存 每个进程有独立的虚拟处理器和虚拟内存, 每个线程有独立的虚拟处理器,同一个进程内的线…
第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间.进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有通过调度程序的合理调度,系统资源才能最大限度地发挥作用,多进程才会有并发执行的效果. 4.1 多任务 1.多任务操作系统就是能同时并发地交互执行多个进程的操作系统.无论在单处理或者多处理器机器上,多任务操作系统都能使多个进程处于拥塞或者睡眠状态,也就是实际上不被投入执行,直到工作确实就绪. 2.多任务系统可以划分为两类:非抢占式多任务和抢占…
第四章 子查询:在外部查询内嵌套的内部查询(按照期望值的数量分为,标量子查询 scalar subqueries,多值子查询multivalued subqueries)(按照子查询对外部查询的依赖性分为独立子查询self-contained subqueries和相关子查询 correlated subqueries) 应用一:关系分区问题,使用group by和distinct count 来解决关系分区问题 Eg:NorthWind返回每个美国员工至少为其处理过一个订单的所有客户 独立子查…
chapter 4 进程调度 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统. 多任务系统可以划分为两类: - 非抢占式多任务: - 进程会一直执行直到自己主动停止运行(这一步骤称为让步) - 抢占式多任务: - Linux/Unix使用的是抢占式的方式:强制的挂起进程的动作就叫做抢占.进程在被抢占之前能够运行的时间是预先设置好的(也就是进程的时间片) 4.2 linux的进程调度 O(1)调度器:对大服务器的工作负载很理想,但是缺少交互进程. 反转楼梯最后期限调度算法…
第3章 进程管理20 3.1 进程20 进程就是处于执行期的程序(目标码存放在某种存储介质上),但进程并不仅仅局限于一段可执行程序代码.通常进程还要包含其他资源,像打开的文件,挂起的信号,内核内部数据,处理器状态,一个或多个具有内存映射的内存地址空间及一个或多个执行线程.当然还包括用来存放全局变量的数据段等,实际上,进程就是正在执行的程序代码的实时结果,内核需要有效而又透明地管理所有细节. 执行线程,简称线程,是在进程中活动的对象,每个线程都拥有一个独立的程序计数器.进程栈和一组进程寄存器,内核…
信号量:用于管理对资源的访问: 共享内存:用于在程序之间高效的共享数据: 消息队列:在程序之间传递数据的一种简单方法: 一.信号量 临界代码:需要确保只有一个进程或者一个执行线程可以进入这个临界代码并拥有对资源独占式的访问权. 临界区:真正执行数据更新的代码需要独占式的执行,它们被称为临界区域:它们通常只在一个大型程序中占据一小段的代码. 信号量是一个特殊的变量,它只取正整数值,并且程序对其访问都是原子操作:只允许对它进行等待和发送信号这两种操作. 在Linux编程中,等待和发送信号都已具有特殊…
第一章    Linux内核简介 1.1Unix历史 Unix特点:1.很简洁 2.所有东西都被当成文件对待 3.Unix内核和相关的系统工具软件都是用C语言编写而成 4.进程创建非常迅速 1.2追寻Linus足迹:linux简介 Linus开发.Linux是类Unix系统.Linux内核也是自由软件. 1.3操作系统和内核简介 操作系统:在整个系统中负责完成最基本功能和系统管理的那些部分.包括内核.设备驱动程序.启动引导程序.命令行shell或者其他种类的用户界面.基本的文件管理工具和系统工具…
这一章主要介绍C语言的结构和其他数据形式,是学习算法和数据结构的重点. 1.示例代码 /*book.c -- 仅包含一本书的图书目录*/ #include <stdio.h> #define MAXTITL 41 #define MAXAUTL 31 struct book { /* data */ char title[MAXTITL]; char author[MAXAUTL]; float value; }; int main(void) { struct book library; /…
true和false Java不允许将数字作为布尔值使用. 所有条件表达式都将布尔值作为判断条件,决定执行路径. if-lese 迭代 while,do-while,for为三个迭代语句. ,逗号操作符仅会用在for循环的控制表达式当中. 使用逗号操作符可以在for循环控制表达式中定义多个变量,但必须具有相同的类型. Foreach语法 for(float x : f)其中f代表一个装有浮点元素的数组,将每一个元素赋值给x. 用于访问数组和容器,不需要创建变量进行计数. return语句 指定一…
使用属性 /* 每个元素都有一或多个特性,,这些特性的用途是给出相应元素或其内容的附加信息.(出自 JavaScript 高级程序设计) */ /* 特性是固有的 JavaScript 对象 属性指的是在标记中指定的 DOM 元素值 属性值的类型始终是字符串 */ /* 如果属性存在相应的 DOM 的内置特性值,那么对象特性被同步 如果属性作为一个内建属性存在并且是一个布尔值,那么该值不会被同步 */ var checkbox = document.getElementById('checkbo…