- 博客(22)
- 收藏
- 关注
转载 系统调用 - 与内核通信
与内核通信操作系统(内核)相当于是在应用程序和硬件之间添加了一个中间层。所以应用程序是不能够直接访问硬件设备的,只能使用内核向外提供的一组接口,这些接口让应用程序受限地访问硬件设备。我们把调用这些接口的过程叫做系统调用。这样做的好处是:(1)它为应用程序提供了一种硬件的抽象接口。例如你要读取文件时,不需要关心该机器使用的是机械硬盘还是固态硬盘,也不用去管该操作系统使用的是何种...
2016-04-13 13:08:00
238
转载 进程调度(I/O消耗型进程和处理器消耗型进程)
多任务操作系统操作系统提供了虚拟处理器的机制,虚拟处理器给进程一种假象,让进程觉得自己是在独占CPU。操作系统内核必须通过合理的进程调度从而保证这种假象,这样操作系统资源才能得到最大的利用率。正是这种虚拟处理器的机制,使得操作系统能够同时执行多种任务,所以现在的操作系统都是多任务操作系统。 多任务操作系统分为非抢占式多任务操作系统和抢占式多任务操作系统,现代的操作系统...
2016-04-11 20:31:00
1081
转载 进程管理
进程(process)进程就是处于执行期的程序。但进程并不仅仅是一段可执行的代码。通常进程还要包含其它资源,像进程标识符,打开的文件,接收到的信号,处理器状态,所分配的内存等信息。实际上,进行就是正在执行程序代码的实时结果,内核需要有效而又透明地管理所有的细节,所以一个进程需要维护非常多的信息。所以总的来说,进程就是处于执行期的程序以及相关资源信息的总称。Linux中,用一个ta...
2016-04-10 16:00:00
124
转载 Java多线程使用场景
使用多线程就一定效率高吗? 有时候使用多线程并不是为了提高效率,而是使得CPU能够同时处理多个事件。使用场景1为什么了不阻塞主线程,启动其他线程来做耗时的事情。比如app开发中耗时的操作都不在UI主线程中做。使用场景2实现响应更快的应用程序, 即主线程专门监听用户请求,子线程用来处理用户请求。以获得大的吞吐量。感觉这种情况下,多线程的效率未必高。 这种情况下的多线程是...
2016-04-03 11:50:00
132
转载 JDBC的基础原理
调用Class.forName("com.mysql.jdbc.Driver"); 加载mysql的驱动类进内存,那么就会在DriverManager中注册自己,注册的意思简单来说就是DriverManager中保持一个Driver引用指向了自己,但是具体的实现可能不同。然后嗲用DriverManager.getConnection方法得到连接对象, 这里运用到了简单工厂方法,...
2016-04-03 11:42:00
104
转载 mac命令行卸载mysql的方法
sudo rm /usr/local/mysqlsudo rm -rf /usr/local/mysql*sudo rm -rf /Library/StartupItems/MySQLCOMsudo rm -rf /Library/PreferencePanes/My*vim /etc/hostconfig (and removed the line MYSQLCO...
2015-12-29 19:59:00
282
转载 中缀表达式转后缀表达式
后缀的好处是无需考虑优先级,用一个栈就可以对后缀表达式进行计算,非常简单。后缀表达式的递归定义如下。(1)如果$E$是变量或者常数, 那么$E$的后缀表示就是$E$(2)如果$E$为$(E_1)$形式, 那么$E_1$的后缀表示就是$E$的后缀表示(3)如果$E$是$E_1 op_1 E_2$,则$E$的后缀表示为$E_1 E_2 op$转载于:https://...
2015-12-26 13:58:00
108
转载 DFA的最小化
等价状态DFA上的等价状态,即两个状态的效果是等过的。假设如果有p,q两个状态,对于任意的串w,$\delta(p,w)是接受状态, 当且仅当\delta(q,w)$,则称状态p和状态q是等价状态。与等价状态相反的状态是可区分状态判定可区分状态的算法基础:如果p是接受状态,而q是非接受状态,则状态p和q是可区分的。归纳:设p和q是满足下列条件的状态:对于某个输入符号$...
2015-12-24 10:47:00
383
转载 LL(1)分析法
LL(1)分析法又叫预测分析法,是一种不带回溯的非递归自顶向下的分析法。LL(1)是不带回溯的非递归的分析法是因为,它每次都只有一个可用的产生式,所以是不带回溯和非递归的,当无法处理输入符号时,即出错。第一个L表示是从左到右扫描输入串,第二个L表示推导过程中使用最左推导,(1)表明只需要向右看一个符号,就可以决定如何推导的(即知道用哪个产生式进行推导)。什么是LL(1)分析...
2015-12-23 21:24:00
847
转载 NFA与DFA之间的转化
利用子集法,可以将NFA转化为与之等价的DFA。记状态机$A$为 $$A = ( V,\sum,\delta,V_{N},V_{T} )$$$\epsilon \_CLOSURE$的求法假设我们要构造状态$I$的$\epsilon$_闭包,即$\epsilon \_CLOSURE(I)$。基础:$I \in \epsilon \_CLOSURE(I)$。归纳:如果$s...
2015-12-23 09:45:00
667
转载 词法分析器与正规式
词法分析器词法分析器是一个程序,它的任务是从源程序中提取单词。比如从源程序中提取出保留字,标识符,常数,运算符等单词符号。词法分析器的结果是输出单词(token),通常是二元式(单词种别,单词自身的值)。单词种别的划分,是如何设计编译器层面上的事情。可以将所有的保留字视为一种,也可以将每个保留字都视为一种。不过通常是将每种单词视为一个整数码,这样方便处理。单词自身的值,如...
2015-12-22 13:41:00
281
转载 IOS日期类NSDate的使用
类簇 是一群隐藏在通用接口下的与实现相关的类,使得我们编写的代码可以独立于底层实现(因为接口是稳定的)。NSDate就是一个类簇,它提供了接口,具体的实现由它的子类来实现。NSDate的初始化下面的10个方法,前5个类方法和后5个对象方法的返回的结果是一样的。 不懂干嘛要这样做。下面所有说得当前时间,即调用该函数时,系统所对应的时间。1.返回此刻的日期。需要...
2015-12-17 16:28:00
120
转载 单例模式
如果一个类逻辑上只需要生成一个对象,如果生成了超过一个以上的对象,那么就会出错。比如你设计某个系统,这个系统中有个东西只需要一个实例,那么直接用上单例模式就好了,这样的好处就是,你不用考虑这个东西如果有两个以上的实例会导致什么乱七八糟的结果。就不如IOS中的UIApplication类对象只需要一个实例,该实例负责应用程序的初始化和事件的监听。如果突然多出来该类的一个实例...
2015-12-07 14:09:00
68
转载 FIRST集和FOLLOW集的求法
FIRST集$FIRST集的定义$$FIRST(A) = \{a|A => a...,a \in V_T\}$------------------------------------------------------------------------$ S\rightarrow a..., \\a \ \ \in FIRST(S)\\$-----------...
2015-12-07 10:25:00
165
转载 设计模式基本原则
设计模式的原则开闭原则即对软件功能的扩展是开放的,对修改应该是关闭的。 即在进行功能的扩展时,不需要对原来的程序进行修改。 因为程序的逻辑是复杂的, 牵一发而动全身,修改一个地方, 往往可能导致另一个地方出现BUG。 单一职责原则就一个类而言,应该仅有一个引起它变化的原因。 即一个类的功能要单一,这样引起变化的原因才会只有一个。 但是有的时候,不得不修改,那么...
2015-12-06 21:38:00
112
转载 什么是有穷自动机
有穷自动机的非形式化定义非形式化定义,即非数学语言的定义。自动机是一种抽象的机器,它有很多个状态,用圆圈来表示。状态与状态之间有箭头,箭头上有所需要的条件,也即只有满足箭头上的条件时才能从一个状态走到另一个状态。状态的目的是记住系统历史的有关部分,也即记住所输入的字符串都满足了自动机系统的哪些条件,这就是所说的记住历史。而有穷就是说这个自动机的状态是有限的,这样才能...
2015-11-30 12:16:00
1414
转载 为什么学习自动机
这里说的自动机是抽象自动机,是数理语言学当中的自动机。抽象自动机是一种能够识别语言的抽象的装置,即用来识别输入串是不是某种语言中合格的句子的。具体的作用有:1.典型的编译器中的词法分析器,也即把输入串分解成token符号2.扫描文本,用来找出当中我们所需要的某种字符串。--------------------------------------------...
2015-11-29 20:57:00
503
转载 IOS的Target-action 设计模式
什么是Target-action设计模式Target-action设计模式是这样的,一个对象持有必要的信息,包含action selector(要被调用的函数的标识符)和target,当某些事件发生时,发message给target对象。这个message叫做action message。Target-action的基本流程基本的流程是这样的,UICont...
2015-11-26 20:40:00
127
转载 进程对临界资源的互斥访问
临界资源与临界区临界资源(critical resource):一次只能供一个进程使用的资源。 如:硬件有打印机等,软件有变量,磁盘文件(写入的时候)。临界区(critical section):把进程中访问临界资源的那段代码成为临界区。为了实现临界资源的互斥访问,只要做到进程互斥地进去自己的临界区,便可以实现进程对临界资源的互斥访问。同步机制为实现各进程互质地访...
2015-11-22 22:17:00
2337
转载 操作系统中的进程和线程
进程与进程的作用 当我们双击程序图标,开始运行程序时,就产生了一个进程。所以进程的本质是一个正在执行的程序。进程包含了程序运行的所需要的所有信息,如代码段,数据段,程序计数器(存放下一条指令所在的地址),进程标识符(PID)进程控制块(PCB,用来保存进程退出CPU时的现场信息)等等信息。 所以进程可以看做是容纳程序运行的所有信息的容器。 值得注意的是,一个程序如果运行了两遍...
2015-11-22 10:25:00
103
转载 IOS如何关闭虚拟键盘
使用Did End On Exit事件关闭虚拟键盘 首先要明白第一响应者,当手指点击TextField时,光标出现在TextField中,TextField成为了第一响应者,从而弹出虚拟键盘。那么相应的,当TextField取消了第一响应者状态,那么就会关闭虚拟键盘了。那么很显然就会有一个想法就是:既然手指点击TextField,使得TextField成为第一响应...
2015-11-20 19:52:00
221
转载 IOS中的MVC框架
What is MVCMVC是Model-View-Controller(模型-视图-控制器)的简称。是介于软件体系结构和设计模式之间的一种软件设计的典范,前人的经验证明它是很有用的。Model:表示应用程序的核心,即数据。要知道无论是什么程序都是离不开数据的。 模型提供了了存取数据的接口。View:显示数据,...
2015-11-20 18:28:00
127
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人