自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

位置不能带来自由,能力才能让人自由

  • 博客(85)
  • 收藏
  • 关注

原创 读书笔记之UNIX环境高级编程(8)

进程控制1._exit并不执行标准I/O缓冲的冲洗动作2.vfork()不对复制父进程空间,而是共享在父进程中运行,vfork保证子进程先运行,在他调用exec或exit后父进程才运行#include #include #include #include #include #include #include #include #include #include #i

2015-08-31 11:06:43 485

原创 读书笔记之UNIX环境高级编程(13)

守护进程1.守护进程也称daemon是生存期较长的一种进程。他们常常在系统自举时启动,仅在系统关闭时才终止。守护进程没有控制终端,只在后台运行2.父进程ID为0的各进程通常是内核进程。通常存在于系统的整个生命期,以超级用户权限运行,无控制终端,无命令行3.进程1通常为init,它是系统守护进程,负责启动各运行层次的特定系统服务。大多数守护进程的父进程是init进程

2015-08-30 21:49:51 276

转载 程序员必读书单 1.0

本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读。旨在成为最好最全面的程序员必读书单。前言Reading makes a full man; conference a ready man; and writing an exact man.Francis Bacon优秀的程序员应该具备

2015-08-30 10:34:43 1390

转载 谷歌公司推荐的程序员必修课

进入谷歌那样的大公司工作是多少程序员的人生梦想!最近,Google Education代言啊不推荐了一系列计算机相关课程,为想要学习编程的大学生们指明方向,非大学生也可以来学习哟~谷歌推荐的课程更像是一个“技能树”,课程主要来自美国名校和各种开源教程,你也可以按照这个顺序学习中文的同类课程。前面的 academic 系列课程比较接近计算机专业的学习顺序。如果你不打算成为专业的工程师

2015-08-30 10:31:09 2113

原创 读书笔记之linux/unix系统编程手册(31)

线程安全和每个线程的存储1.若函数可供多个线程安全调用,则成为线程安全函数2.保障非线程安全函数的手段之一是运用互斥锁来防护对该函数的所有调用。这种方法带来了并发性能的下降,因为同一时点只能有一个线程运行该函数。提升并发性能的另一个方法是:仅在函数中操作共享变量(临界区)的代码前后加入互斥锁。

2015-08-29 22:36:10 419

原创 读书笔记之linux/unix系统编程手册(30)

线程同步1.互斥量可以帮助线程同步,条件变量允许线程相互通知共享变量的状态发生变化2.互斥量有已锁定和未锁定两种状态3.如果互斥量已被锁定,那么mutex_lock()调用会一直阻塞,直至被解锁,那时才返回4.如果调用lock()之前,线程已经锁定,线程会陷入死锁5.每个线程成功的锁住一个互斥量,接着试图对已为另一个线程锁定的互斥量加锁,两个线程将死锁,两个线程分别锁定两个互斥

2015-08-28 21:47:51 650

原创 读书笔记之linux/unix系统编程手册(47)

system V 信号量1.system V的信号量的常规步骤:(1)使用semget()创建或打开一个信号量集(2)使用semctl()setval或setall操作初始化集合中的信号量(3)使用semop()操作信号量值。使用信号量的进程通常会使用这些操作来表示一种共享资源的获取和释放(4)当所有的进程不再需要使用信号量集之后使用semctl()操作删除这个集合2.由于

2015-08-27 15:38:04 474

原创 读书笔记之linux/unix系统编程手册(53)

POSIX 信号量1.命名信号量:这种信号量拥有一个名字。通过使用相同的名字调用sem_open(),不相关的进程能够访问同一个信号量2.未命名信号量:这种信号量没有名字,相反,它位于内存中一个预先商定的位置处。当进程之间共享时,信号量必须位于一个共享内存区域中。

2015-08-27 10:08:23 585

原创 读书笔记之linux/unix系统编程手册(44)

管道和FIFO1.管道是一个字节流意味着在使用管道时是不存在消息或消息边界的,从管道中读取数据的进程可以读取任意大小的数据块,而不管进程写入的数据块大小,如果需要实现离散消息的概念,最好使用其他的IPC机制如消息机制和数据报socket2.管道是单向的3.可以确保写入不超过pipe_buf字节的操作是原子的,只有在数据被传输到管道时候,pipe_buf限制才起作用,当写入的数据达到pi

2015-08-25 19:30:30 513

原创 读书笔记之linux/unix系统编程手册(43)

进程间通信介绍1.unix系统上各种通信和同步工具,并根据功能将他们分成了三类(1)通信:这些工具关注进程之间的数据交换(2)同步: 这些进程关注进程和线程操作之间的同步(3)信号:尽管信号的主要作用并不在此,但在特定场景下可以将它作为一种同步技术2.数据传输工具:为了通信,一个进程将数据写入IPC工具,另一个从中读取数据。这些工具要求在用户内存和内核内存之间进行两次数据传输:

2015-08-24 22:06:53 767

原创 读书笔记之linux/unix系统编程手册(26)

int main(int argc, char* argv[]){ printf("hello world\n"); write(STDOUT_FILENO, "Ciao\n", 5); int pid = fork(); if(pid == -1) { exit(0); }else if(pid > 0) { int cid = wait(NULL); printf

2015-08-24 19:19:53 472

原创 读书笔记之linux/unix系统编程手册(25)

进程的终止1.无论进程是否正常终止,都会发生如下动作:(1)关闭所有打开的文件描述符、目录流、信息目录描述符(2)作为文件描述符关闭的后果之一,将释放该进程所持有的任何文件锁(3)分离任何已连接的systemV共享内存段,且对应于各段的计数器值将减一(4)进程为每个systemV信号量所设置的值会被加到信号量值中(5)将关闭进程打开的任何posix有名信号量(6)将关闭

2015-08-24 18:00:46 572

原创 读书笔记之linux/unix系统编程手册(24)

进程的创建1.从概念上说,可以将fork()认作对父进程程序段,数据段,堆栈段的拷贝2.现代unix采用两种技术来避免这种浪费:(1)内核将每一进程的代码标记为只读,从而使进程无法修改自身代码,父子进程共享同一代码段(2)对于父进程数据段、堆段、栈段中各页,内核采用写时复制技术来处理。3.调用fork()后,无法确定父子进程间谁将率先访问cpu。会造成资源竞争。

2015-08-24 15:27:55 740

转载 60个国外免费3D模型下载网站

Today, 3D models are used in a wide variety of industries. The movie industry uses them as characters and objects for animated and real-life motion pictures. The video game industry uses them as asset

2015-08-24 09:50:42 6909

原创 读书笔记之linux/unix系统编程手册(20)

信号:基本概念1.信号是事件发生时对进程的通知机制。有时也成为软件中断。信号与硬件中断的相似之处在于打断了程序执行的正常流程,大多数情况下,无法预测信号到达的精确时间2.一个进程能够向另一个进程发送信号。信号的这一用法可作为一种同步技术,甚至是进程间通信的(IPC)的原始形式。进程也可向自身发送信号。3.内核为进程产生信号的各类事件如下:(1)硬件发生异常,如被0除,或者引用了无法

2015-08-23 16:15:25 1022

原创 二叉树中的数学性质

1.总结点数 = 总分支数 + 1;2.树的节点数 = 节点的度数 + 1;3.叶节点数 = 度为2的节点数 + 1;

2015-08-23 13:08:00 912

原创 读书笔记之计算机系统(10)

UNIX系统的内核结构1.可以把整个UNIX 系统分成四个层次。其最低层是硬件,作为整个系统的基础。次低层是OS核心,包括前面所介绍的进程管理、存储器管理、设备管理和文件管理四大资源管理功能。上面第二层是OS 与用户的接口Shell 以及编译程序等。最高层是应用程序。作为OS的核心,它应具有两方面的接口:一方面是核心与硬件的接口,它通常是由一组驱动程序和一些基本的例程所组成的;另一方面就是核心

2015-08-23 00:58:32 415

原创 读书笔记之计算机系统(8)

网络操作系统1.计算机局域网——LAN(Local Area Network(1)基本型局域网:以太网(ethernet),令牌环(token-ring)网(2)快速LAN 便是试图通过提高LAN的传输速率来增加每个站点的带宽的。FDDI光纤环网,快速以太网(3)交换式lan(4)千兆位以太网(5)10 Gb/s 以太网2.实现网络互连的设备,可根据其复杂程度的不同而分

2015-08-22 22:48:47 522

原创 读书笔记之计算机系统(7)

操作系统接口1.UNIX 的Shell 是作为操作系统的最外层,也称为外壳。它可以作为命令语言,为用户提供使用操作系统的接口,用户利用该接口与机器交互。Shell 也是一种程序设计语言,用户可利用多条Shell 命令构成一个文件,或称为Shell 过程。2.在计算机系统中,通常运行着两类程序:系统程序和应用程序,为了保证系统程序不被应用程序有意或无意地破坏,为计算机设置了两种状态:系统态(

2015-08-22 16:57:38 746

原创 读书笔记之计算机系统(6)

文 件 管 理1.对于通常的UNIX 文件目录,其每个目录项中含有一个ASCII 码的文件名和一个索引结点号,后者指向一个索引结点。当有重复文件时,一个目录项可由一个文件名和若干个索引结点号组成,每个索引结点号都是指向各自的索引结。2.共享锁与互斥锁的区别在于: 互斥锁仅允许一个事务对相应对象执行读或写操作,而共享锁则允许多个事务对相应对象执行读操作,不允许其中任何一个事务对对象执行写操作

2015-08-22 12:35:24 743

原创 读书笔记之计算机系统(5)

I/O 系统1.按设备的使用特性,可将设备分为两类。第一类是存储设备,也称外存或后备存储器、辅助存储器,是计算机系统用以存储信息的主要设备。第二类就是输入/输出设备,又具体可分为输入设备、输出设备和交互式设备。2.按设备的共享属性分类这种分类方式可将I/O 设备分为如下三类:独占设备。这是指在一段时间内只允许一个用户(进程)访问的设备,即临界资源。共享设备。这是指在一段时间内允许多个进程同

2015-08-22 11:39:19 377

原创 Populating Next Right Pointers in Each Node II

Follow up for problem "Populating Next Right Pointers in Each Node".What if the given tree could be any binary tree? Would your previous solution still work?Note:You may only use constant

2015-08-21 14:49:52 236

原创 Recover Binary Search Tree

Two elements of a binary search tree (BST) are swapped by mistake.Recover the tree without changing its structure.Note:A solution using O(n) space is pretty straight forward. Could you devis

2015-08-21 10:13:13 270

原创 读书笔记之计算机系统(4)

存储器管理1.存储器至少有三级:最高层为cpu寄存器,中间为主存,最底层是辅存,辅存含磁盘 2.在较高档的计算机中,还可以根据具体的功能分工细划为寄存器、高速缓存、主存储器、磁盘缓存、固定磁盘、可移动存储介质等6 层3.在存储层次中越往上,存储介质的访问速度越快,价格也越高,相对存储容量也越小。其中,寄存器、高速缓存、主存储器和磁盘缓存均属于操作系统存储管理的管辖范畴4.寄存器和主

2015-08-21 00:32:30 494

原创 读书笔记之计算机系统(3)

处理机调度与死锁1.作业(Job)。作业是一个比程序更为广泛的概念,它不仅包含了通常的程序和数据,而且还应配有一份作业说明书,系统根据该说明书来对程序的运行进行控制。2.先来先服务(fcfs)调度算法,比较有利于长作业(进程),不利于短作业(进程)3.短作业优先调度算法4.周转时间 = 完成时间 - 到达时间;带权周转时间 = 周转时间/服务时间5.CPU繁忙型作业是指该作业需

2015-08-20 22:43:18 407

原创 读书笔记之计算机系统(2)

1.前驱图是一个有向无循环图,记为DAG,用于描述进程之间执行的前后关系2.1.5进程控制块1.进程控制块,系统为每个进程定义了一个数据结构——pcb,pcb是进程实体的一部分,是操作系统中最重要的记录型数据结构2.寄存器包括:通用寄存器,又称用户可视寄存器,用户程序可以访问;指令计数器,存放了处理机要访问的下一条指令的地址;程序状态字psw;用户栈指针2.2.2进程的终止异常

2015-08-20 16:40:22 387

原创 读书笔记之计算机操作系统(1)

1.3操作系统的基本特性1.并发性和并行性,并行性是指两个以上的事件同时发生,并发性是指两个以上事件在同一时间间隔内发生,不一定同时,在宏观上多个程序同时运行2.共享性:互斥共享和同时访问3.异步性是指进程的执行是以“停停走走”方式执行

2015-08-20 10:05:02 683

原创 Binary Tree Right Side View

Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.For example:Given the following binary tree, 1

2015-08-18 16:36:21 230

原创 Binary Tree Paths

Given a binary tree, return all root-to-leaf paths.For example, given the following binary tree: 1 / \2 3 \ 5All root-to-leaf paths are:["1->2->5", "1->3"]/**

2015-08-18 15:31:59 417

原创 Combination Sum III

Find all possible combinations of k numbers that add up to a number n, given that only numbers from 1 to 9 can be used and each combination should be a unique set of numbers.Ensure that numbers wi

2015-08-18 14:39:30 276

原创 Combinations

Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.For example,If n = 4 and k = 2, a solution is:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4

2015-08-18 14:13:36 218

原创 程序员的自我修养(1)

温故而知新1.2万变不离其宗1.计算机多如牛毛的硬件设备中,最为关键的三个部分:cpu,内存,I/O控制芯片,他们都直接连在同一个总线上2.早期设备I/O设备如显示设备,键盘,磁盘速度与cpu和内存相比慢很多,为了能够让cpu和I/O设备进行通信,一般每个设备都会有一个相应的I/O控制器3.90年代低速设备连接在南桥芯片,南桥将他们汇总后连接到北桥上,北桥芯片连接所有高速芯片,例如

2015-08-18 01:09:15 526

原创 Lowest Common Ancestor of a Binary Tree

Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two node

2015-08-17 16:17:06 296

原创 Lowest Common Ancestor of a Binary Search Tree

Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined betw

2015-08-17 14:24:01 221

原创 Spiral Matrix II

Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.For example,Given n = 3,You should return the following matrix:[ [ 1, 2, 3 ], [ 8, 9, 4 ],

2015-08-16 18:28:38 251

原创 Length of Last Word

Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the length of last word in the string.If the last word does not exist, return 0.Note: A word is

2015-08-16 18:25:50 212

原创 Maximum Subarray

Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given the array [−2,1,−3,4,−1,2,1,−5,4],the contiguous subarray [4,−1,2,1] 

2015-08-16 18:16:06 216

原创 Pow(x, n)

Implement pow(x, n).class Solution {public: double pow(double x, long long n) { if(n==0) return 1.0; if(n<0) return 1.0/pow(x,-n); double half=po

2015-08-16 15:52:11 320

原创 Rotate Image

You are given an n x n 2D matrix representing an image.Rotate the image by 90 degrees (clockwise).Follow up:Could you do this in-place?class Solution {public: void rotate(vector > &

2015-08-16 15:44:40 296

原创 Permutations II

Given a collection of numbers that might contain duplicates, return all possible unique permutations.For example,[1,1,2] have the following unique permutations:[1,1,2], [1,2,1], and [2,1,1

2015-08-16 14:48:50 247

空空如也

空空如也

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

TA关注的人

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