网络编程的一些问题总结

数据库系统与文件系统的异同?
答:不同点:
(1)文件系统中的数据与程序有一定的联系(对数据操作要修改程序);
数据库系统的程序和数据是分离的。
(2)文件系统长期保存在外存上,数据库系统用数据库统一存储数据。
(3)文件系统用操作系统中的存储方法对数据进行管理,数据库系统用DBMS(数据库管理系统)对数据进行统一管理和控制。

相同点:(1)均为管理数据的技术
(2)数据库系统是文件系统的基础上发展来的。

系统调用和库函数的区别??

(1)系统调用是最底层的调用,面向硬件的。而库函数是面向应用开发的,相当于应用程序的API接口。
(2)操作系统一般没有跨操作系统的可 移植性,库函数的移植性很好,例如windows环境可以用库函数,在linux系统照样可以
(3)库函数属于过程调用,调用开销小,系统调用需要在用户空间和内核间调用,是系统内核的服务。
(4)库函数调用函数库中的一段程序,这段程序最终通过系统调用实现。

为什么选择系统调用??什么时候使用系统调用操作文件??
原因:
系统调用是访问文件最直接的方式,通常用于底层文件的访问。(面向硬件)
场合:
系统调用是操作系统相关,所以一般没有跨操作系统的移植性。

为什么选择库函数??什么时候使用库函数操作文件?
原因:
库函数提高了文件访问的效率,使文件操作变得方便。减少了用户空间的到内核空间的花销。
场合:
应用程序对一般文件操作时,使用库函数。
库函数的文件独立于具体的操作系统平台。

为什么数据库选择sqlite??还有那些嵌入式数据库???特点是什么??
(1)SQlite数据库是一种嵌入式数据库,采用单文件的方式存放数据库。
(2)速度大概比MySQL快1到2倍。语句操作上更类似于关系型数据库,使用非常方便。
(3)而且是源代码开放,减少产品的开发时间,节约了开发成本。
体积小速度快。
(4)功能完善
(5)提供丰富的API支持。对于C++、C,PHP 等编程语言都可以通过API访问。

什么是进程??什么是线程??
线程:是操作系统能够进行运行调度的最小单位,它被包含在进程之中,一条线程指的是进程中一个单一顺序的控制流,
一个进程可以并发多个线程,每个线程执行不同的任务。
进程:计算机已运行程序的实体。进程本身不会运行,是线程的 容器。程序本身是指令的集合。
进程才是程序真正的运行。进程为现今分时系统的基本运作单位。

进程是资源分配的最小单位,线程是CPU调度的最小单位。
线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,
每个线程有自己的执行堆栈和程序计数器为其执行上下文.
多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定. 线程的运行中需要使用计算机的内存资源和CPU。

多线程与多进程的区别?
每个进程都有自己的地址空间。而多线程之间共享地址空间,执行开销小,但是不利于资源管理与保护。
线程是由进程管理的。一个进程可以拥有多个线程,但是一个线程只属于一个进程。

什么时候选择多线程,什么时候采用多进程?
强相关的时候使用多线程,弱相关的时候使用多进程,但是没有明确的规定。一般情况下进程与线程结合使用。

进程间通信的方式有哪些??各自的优缺点及应用选择??
有6种:管道通信,信号通信,共享内存,消息队列,信号量,套接字。

管道: 分为无名管道和有名管道。无名管道用于子进程和父进程之间的通信,有名管道适用于一两个进程之间的通信。
数据只能单向流动且容易出现进程阻塞。

信号通信:比较负责,用于通知接受进程某个事件已经发生。

共享内存:通信速度最快

消息队列:传递信息量多,缓冲器大小限制

信号量:可以控制多个进程对共享资源的访问。主要作为进程间以及同一进程内不同线程之间的同步手段。

套接字:可用于不同及其间的进程通信。

多线程与多进程通信方式的区别??
多线程通信更为方便,因为同一进程下的线程共享数据空间,所以一个线程的数据可以直接被其他线程所使用。
但是多进程各自有自己的独立数据空间。所以需要进程间的通信下能实现通信。

谈谈你对进程的理解??内核是如何管理进程的??
首先,进程是资源分配的基本单位,一个程序就是一个进程。进程有三种状态。执行状态,等待状态,就绪状态。
内核调度器通过不同的调度方法选择最值得运行的进程。

多进程编程的优缺点??
优点:当多进程的一个进程出现异常,其他进程不受任何影响。可靠性高。
缺点:存在进程互斥的情况。当多个进程需要某一共享资源的时候,任何时候只允许一个进程使用。
其他进程要使用的时候只能等待,等到资源被释放后才可以被使用。占用内存多。

什么是进程死锁??操作进程死锁的原因??
当多个进程同时占有对方所需要的资源并且同时请求对方的资源,而在他们得到请求之前不会释放占有的资源就会产生进程死锁。

进程死锁的原因是什么??
1.系统提供的资源数量有限
2.多道程序运行的时候进程推进的顺序不合理。

保持进程同步的方法有哪些??
管道,FIFO,套接字,共享内存,消息队列,文件映射

线程同步的方式有哪些?优缺点??
临界区,事件,互斥量,信号量

为什么采取链表来管理在线用户而不采用数据库??为什么采用数据库在线用户不采用链表??
1.当异常关闭服务器的时候,当前的在线的用户都自动下线。
2.采用数据库管理在线用户操作更加简单。

你是如何实现文件传输的?如果文件过大,如何保证数据正确的传输??
通过系统调用write,read函数来进行文件的传输。如果文件更大,我是通过进行多次传输,并且每一次传输前都会
进行入口参数检查以及对buffer清空。

TCP与UDP的区别?
tcp:为应用程序提供可靠的数据连接,适合一次传输大量的数据。并且适用要求得到相应的应用程序。
udp:实现的是无连接传输,一次传输少量的数据。并且不保证数据传输的可靠性。

什么时候选择TCP?什么时候选择UDP?
当需要传输大量数据以及保证数据的可靠性并要求得到相应的应用程序的时候选择TCP,
当需要无连接传输,且不需要保证数据的可靠性,每次就传输少量的数据的时候选择UDP。

TCP是如何保证可靠数据传输的?
TCP是通过三次握手以及滑动窗口机制来保证传输的可靠性。

七层网络模型与四层网络模型以及每层的网络协议??
七层网络模型有应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。
四层网络模型有应用层,传输层,网络层,网络接口层。
应用层的协议有如Telnet和FTP(文件传输协议);常用的传输层协议是传输控制协议TCP和UDP;
互联网络层的协议有IP,ICMP,IGMP,ARP,以及RARP;网络接口层有X.25,ATM,FDDI,以及SNA。

如果只有UDP 协议,你如何保证可靠传输?
要想UDP协议保证数据的可靠传输就需要自己在应用层实现定义一些可靠的协议。如检查包的顺序等等。

解释一下三次握手?
三次握手是为了确保TCP的连接的成功建立。三次握手的过程就是现在有A,B两台主机。A想B发送请求,B收到A请求后,
发送同意的消息给A,A再收到同意的消息把数据发送给B。

说说有哪五类ip??
A类,B类,C类,D类,E类

端口号与ip网关的作用??
端口号:使用端口号和网络地址的组合可以唯一确定整个网络的一个网络进程。
IP:确定进程所在的计算机
网关的作用:网关通常支持一个网络到另一个网络的地址映射,并且还可以提供环境间的数据传输以支持端到端的应用连接。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值