第6章 第2节 操作系统

推荐给朋友

● 操作系统进程和线程的区别

参考回答:

进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。

线程,是进程的一部分,一个没有线程的进程可以被看作是单线程的。线程有时又被称为轻权进程或轻量级进程,也是 CPU 调度的一个基本单位。

● 什么是进程 线程

参考回答:

进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。

线程,是进程的一部分,一个没有线程的进程可以被看作是单线程的。线程有时又被称为轻权进程或轻量级进程,也是 CPU 调度的一个基本单位。

● 线程的那些资源共享,那些资源不共享

参考回答:

共享的资源有

a. 堆  由于堆是在进程空间中开辟出来的,所以它是理所当然地被共享的;因此new出来的都是共享的(16位平台上分全局堆和局部堆,局部堆是独享的)

b. 全局变量 它是与具体某一函数无关的,所以也与特定线程无关;因此也是共享的

c. 静态变量虽然对于局部变量来说,它在代码中是“放”在某一函数中的,但是其存放位置和全局变量一样,存于堆中开辟的.bss和.data段,是共享的

d. 文件等公用资源  这个是共享的,使用这些公共资源的线程必须同步。Win32 提供了几种同步资源的方式,包括信号、临界区、事件和互斥体。

独享的资源有

a. 栈 栈是独享的

b. 寄存器  这个可能会误解,因为电脑的寄存器是物理的,每个线程去取值难道不一样吗?其实线程里存放的是副本,包括程序计数器PC

●  linux指令用的多吗,怎么进行进程间通信

●  kill指令了解过吗

● 操作系统里面进程和线程的区别

参考回答:

进程是具有一定独立功能的程序,他是系统进行资源分配调度的一个独立单位,

线程是进程的一个实体,是cpu调度分派的基本单位,线程之间基本上不拥有系统资源

一个程序至少有一个进程,一个进程至少有一个线程,资源分配给进程,同一个进程下所有线程共享该进程的资源

● Linux查询进程指令,查询端口,杀进程,

参考回答:

查询进程:

ps 命令用于查看当前正在运行的进程。

grep 是搜索

例如: ps -ef | grep java

表示查看所有进程里CMD是java的进程信息

ps -aux | grep java

-aux 显示所有状态

ps

杀死进程:

kill -9[PID]

● 进程间的通信方式有哪些

参考回答:

总共有八种,面试中只要能大概答上三四种方式的原理就可以了

1、无名管道:半双工的通信方式,数据只能单向流动且只能在具有亲缘关系的进程间使用

2、高级管道:将另一个程序当作一个新的进程在当前程序进程中启动,则这个进程算是当前程序的子进程,

3、有名管道,:也是半双工的通信方式,但是允许没有亲缘进程之间的通信

4、消息队列:消息队列是有消息的链表,存放在内核中,并由消息队列标识符标识,消息队列克服了信号传递信息少,管道只能承载无格式字节流以及缓冲区大小受限的缺点

5、信号量:信号量是一个计数器,可以用来控制多个进程对共享资源的访问,它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源,

6、信号:用于通知接受进程某个事件已经发生

7、共享内存:共享内存就是映射一段能被其他进程所访问的内存。这段共享内存由一个进程创建,但是多个进程可以访问,共享内存是最快的IPC 方式,往往与其他通信机制配合使用

8、套接字:可用于不同机器之间的进程通信