操作系统-Linux命令
资源文件列表:

sdfdfg3wer.pdf 363.89KB
资源介绍:
操作系统_Linux命令
操作系统
1. 进程与线程的区别
进程:指系统正在运行的一个应用程序;程序一旦运行就是进程;进程是系统资源分
配的最小单位。
线程:线程是操作系统调度的最小单元。进程是系统执行的最小单位。一个进程在其
执行的过程中可以产生多个线程。
线程是进程的一个实体,比进程更小的独立运行基本单位。
一个程序下至少有一个进程,一个进程下至少有一个线程,一个进程下也可以有多个
线程来增加程序的执行速度。
进程和进程之间的资源无法共享,线程和线程之间的资源可以共享。
2. 进程间的通信方式
管道 有名管道 信号量 消息队列 共享内存 套接字
管道:一个管道只能一个进程写,另一个进程读。一个进程写完后,另一个进程才能
读。效率低。
信号量:计数器,信号量用于实现进程间的互斥与同步
消息队列:往消息队列写入数据就可以正常返回,效率高。
共享内存:指两个或多个进程共享一个给定的存储区。
3. 线程间的通信方式
全局变量
消息队列
4. 线程同步的方式

线程同步是两个或多个共享关键资源的线程的并发执行。应该同步线程以避免关键的
资源使用冲突。操作系统一般有下面三种线程同步的方式:
● 互斥量(Mutex):采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资
源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。
比如 Java 中的 synchronized 关键词和各种 Lock 都是这种机制。
● 信号量(Semaphore) :它允许同一时刻多个线程访问同一资源,但是需要控制同
一时刻访问此资源的最大线程数量。
● 事件(Event) :Wait/Notify:通过通知操作的方式来保持多线程同步,还可以方便
的实现多线程优先级的比较操作。
5. 线程的状态
NEW 新建状态:线程被创建出来但没有被调用 start()。
RUNNABLE 就绪(可运行状态):线程被调用了 start(),等待运行的状态。
Running:运行状态,就绪状态的线程被 cpu 调度后,执行程序代码
BLOCKED 阻塞状态:需要等待锁释放。
WAITING 持续等待状态:表示该线程需要等待其他线程做出一些特定动作(通知或
中断)。如通过 wait()方法进行等待的线程等待一个 notify()或者 notifyAll()方法,通
过 join()方法进行等待的线程等待目标线程运行结束而唤醒。
TIMED_WAITING 超时等待状态:可以在指定的时间后自行返回而不是像 WAITING
那样一直等待。如 sleep(3000)方法。
TERMINATED 终止状态:表示该线程已经运行完毕。
6. 进程的调度方法
为了确定首先执行哪个进程以及最后执行哪个进程以实现最大 CPU 利用率,计算机
科学家已经定义了一些算法,它们是:

● 先到先服务(FCFS)调度算法 : 从就绪队列中选择一个最先进入该队列的进程为之
分配资源,使它立即执行并一直执行到完成或发生某事件而被阻塞放弃占用 CPU 时再
重新调度。
● 短作业优先(SJF)的调度算法 : 从就绪队列中选出一个估计运行时间最短的进程为
之分配资源,使它立即执行并一直执行到完成或发生某事件而被阻塞放弃占用 CPU 时
再重新调度。
● 时间片轮转调度算法 : 时间片轮转调度是一种最古老,最简单,最公平且使用最广
的算法,又称 RR(Round robin)调度。每个进程被分配一个时间段,称作它的时间片,
即该进程允许运行的时间。
● 多级反馈队列调度算法 :前面介绍的几种进程调度的算法都有一定的局限性。如
短进程优先的调度算法,仅照顾了短进程而忽略了长进程 。多级反馈队列调度算法既
能使高优先级的作业得到响应又能使短作业(进程)迅速完成。,因而它是目前被公
认的一种较好的进程调度算法,UNIX 操作系统采取的便是这种调度算法。
● 优先级调度 : 为每个流程分配优先级,首先执行具有最高优先级的进程,依此类
推。具有相同优先级的进程以 FCFS 方式执行。可以根据内存要求,时间要求或任何
其他资源要求来确定优先级。
7. 多进程和多线程的区别
进程是程序在计算机上的一次执行活动,即正在运行中的应用程序,通常称为进程。
每个进程都有自己独立的地址空间(内存空间),每当用户启动一个进程时,操作系统
就会为该进程分配一个独立的内存空间,让应用程序在这个独立的内存空间中运行。
在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行状态,
这便是多进程,也称多任务。现代的操作系统几乎都是多任务操作系统,能够同时管
理多个进程的运行。