月度归档:2014 年九月

操作系统的分类



操作系统的分类。

  1. 二分时操作系统
  2. 三实时操作系统
  3. 四网络操作系统
  4. 五分布式操作系统

一、批处理操作系统

 

  	批处理(Batch Processing)操作系统的工作方式是:用户将作业交给系统操作员,系统操作员将许多用户的作业组成一[......]

Read more

Linux的进程通信(IPC)



进程间通信的目的

数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。
共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。
通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通[......]

Read more

Linux多线程编程

Linux多线程编程。

线程分类

线程按照其调度者可以分为用户级线程和核心级线程两种。

(1)用户级线程
用户级线程主要解决的是上下文切换的问题,它的调度算法和调度过程全部由用户自行选择决定,在运行时不需要特定的内核支持。在这里,操作系统往往会提供一个用户空间的线程库,该线程库提[......]

Read more

面试题经典跳台阶问题

面试题经典跳台阶问题。

题目:

给定一个有N个台阶的楼梯,一个人从下到上开始跳台阶,这个人有两种跳的方式:一次跳一个台阶,一次跳两个台阶;

问:从台阶底端跳到台阶顶端,有多少种跳台阶的方式?

分析:

首先我们考虑最简单的情况。如果只有1个台阶,那么显然只有一种跳[......]

Read more

进程死锁及解决办法

进程死锁及解决办法,

一、要点提示:

(1)掌握死锁的概念和产生死锁的根本原因。

(2)理解产生死锁的必要条件 — 以下四个条件同时具备:

互斥条件、不可抢占、占有且申请、循环等待。

(3)记住解决死锁的一般方法,掌握死锁的预防和死锁的避免二者的基本思想

(4)[......]

Read more

c++算法寻找最大的K个数

寻找最大的K个数,

问题:查找大量无序元素中最大的K个数。
解法一:该解法是大部分能想到的,也是第一想到的方法。假设数据量不大,可以先用快速排序或堆排序,他们的平均时间复杂度为O(N*logN),然后取出前K个,时间复杂度为O(K),总的时间复杂度为O(N*logN)+O(K).
当K=1[......]

Read more

C/C++常见面试题及答案

C/C++常见面试题,

1. C中static有什么作用
(1)隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。
(2)static的第二个作用是保持变量内容的持久。存储[......]

Read more

MS/Google面试题:寻找丢失的数字

MS/Google面试题:寻找丢失的数字,

题目:

有一组数字,从1到N,其中丢失了一个数字,且顺序也被打乱的存储在一个 size 为N-1的数组中

要求:

找出丢失的数字,最好能有程序,最好算法比较快

BTW1:有很多种方法哦,据说O(n)的方法不止一种

BTW[......]

Read more