当前位置:文档之家› 当前流行的Windows操作系统能同时运行几个程序独立运行

当前流行的Windows操作系统能同时运行几个程序独立运行

当前流行的Windows操作系统能同时运行几个程序独立运行
当前流行的Windows操作系统能同时运行几个程序独立运行

当前流行的Windows操作系统能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程提供了多任务处理的能力。用进程和线程的观点来研究软件是当今普遍采用的方法,进程和线程的概念的出现,对提高软件的并行性有着重要的意义。现在的大型应用软件无一不是多线程多任务处理,单线程的软件是不可想象的。因此掌握多线程多任务设计方法对每个程序员都是必需要掌握的。本实例针对多线程技术在应用中经常遇到的问题,如线程间的通信、同步等,分别进行探讨,并利用多线程技术进行线程之间的通信,实现了数字的简单排序。

一、实现方法

1、理解线程

要讲解线程,不得不说一下进程,进程是应用程序的执行实例,每个进程是由私有的虚拟地址空间、代码、数据和其它系统资源组成。进程在运行时创建的资源随着进程的终止而死亡。线程的基本思想很简单,它是一个独立的执行流,是进程内部的一个独立的执行单元,相当于一个子程序,它对应于Visual C++中的CwinThread类对象。单独一个执行程序运行时,缺省地包含的一个主线程,主线程以函数地址的形式出现,提供程序的启动点,如main ()或WinMain()函数等。当主线程终止时,进程也随之终止。根据实际需要,应用程序可以分解成许多独立执行的线程,每个线程并行的运行在同一进程中。

一个进程中的所有线程都在该进程的虚拟地址空间中,使用该进程的全局变量和系统资源。操作系统给每个线程分配不同的CPU时间片,在某一个时刻,CPU只执行一个时间片内的线程,多个时间片中的相应线程在CPU内轮流执行,由于每个时间片时间很短,所以对用户来说,仿佛各个线程在计算机中是并行处理的。操作系统是根据线程的优先级来安排CPU 的时间,优先级高的线程优先运行,优先级低的线程则继续等待。

线程被分为两种:用户界面线程和工作线程(又称为后台线程)。用户界面线程通常用来处理用户的输入并响应各种事件和消息,其实,应用程序的主执行线程CWinAPP对象就是一个用户界面线程,当应用程序启动时自动创建和启动,同样它的终止也意味着该程序的结束,进程终止。工作线程用来执行程序的后台处理任务,比如计算、调度、对串口的读写操作等,它和用户界面线程的区别是它不用从CWinThread类派生来创建,对它来说最重要的是如何实现工作线程任务的运行控制函数。工作线程和用户界面线程启动时要调用同一个函数的不同版本;最后需要读者明白的是,一个进程中的所有线程共享它们父进程的变量,但同时每个线程可以拥有自己的变量。

2、线程的管理和操作

(一)线程的启动

创建一个用户界面线程,首先要从类CwinThread产生一个派生类,同时必须使用DECLARE_DYNCREATE和IMPLEMENT_DYNCREATE来声明和实现这个CwinThread派生类。第二步是根据需要重载该派生类的一些成员函数如:ExitInstance()、InitInstance()、OnIdle ()、PreTranslateMessage()等函数。最后调用AfxBeginThread()函数的一个版本:CWinThread* AfxBeginThread( CRuntimeClass* pThreadClass, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL ) 启动该用户界面线程,其中第一个参数为指向定义的用户界面线程类指针变量,第二个参数为线程的优先级,第三个参数为线程所对应的堆栈大小,第四个参数为线程创建时的附加标志,缺省为正常状态,如为CREATE_SUSPENDED则线程启动后为挂起状态。

对于工作线程来说,启动一个线程,首先需要编写一个希望与应用程序的其余部分并行运行的函数如Fun1(),接着定义一个指向CwinThread对象的指针变量*pThread,调用AfxBeginThread(Fun1,param,priority)函数,返回值赋给pThread变量的同时一并启动该线程来执行上面的Fun1()函数,其中Fun1是线程要运行的函数的名字,也既是上面所说的控制函数的名字,param是准备传送给线程函数Fun1的任意32位值,priority则是定义该线程的优先级别,它是预定义的常数,读者可参考MSDN。

(二)线程的优先级

以下的CwinThread类的成员函数用于线程优先级的操作:

上述的二个函数分别用来获取和设置线程的优先级,这里的优先级,是相对于该线程所处的优先权层次而言的,处于同一优先权层次的线程,优先级高的线程先运行;处于不同优先权层次上的线程,谁的优先权层次高,谁先运行。至于优先级设置所需的常数,自己参考MSDN就可以了,要注意的是要想设置线程的优先级,这个线程在创建时必须具有THREAD_SET_INFORMATION访问权限。对于线程的优先权层次的设置,CwinThread类没有提供相应的函数,但是可以通过Win32 SDK函数GetPriorityClass()和SetPriorityClass ()来实现。

(三)线程的悬挂和恢复

CWinThread类中包含了应用程序悬挂和恢复它所创建的线程的函数,其中SuspendThread()用来悬挂线程,暂停线程的执行;ResumeThread()用来恢复线程的执行。如果你对一个线程连续若干次执行SuspendThread(),则需要连续执行相应次的ResumeThread()来恢复线程的运行。

(四)结束线程

终止线程有三种途径,线程可以在自身内部调用AfxEndThread()来终止自身的运行;可以在线程的外部调用BOOL TerminateThread( HANDLE hThread, DWORD dwExitCode )来强行终止一个线程的运行,然后调用CloseHandle()函数释放线程所占用的堆栈;第三种方法是改变全局变量,使线程的执行函数返回,则该线程终止。下面以第三种方法为例,给出部分代码:

////////////////////////////////////////////////////////////////

//////CtestView message handlers

/////Set to True to end thread

Bool bend=FALSE;//定义的全局变量,用于控制线程的运行;

//The Thread Function;

UINT ThreadFunction(LPVOID pParam)//线程函数

{

while(!bend)

{

Beep(100,100);

Sleep(1000);

}

return 0;

}

/////////////////////////////////////////////////////////////

CwinThread *pThread;

HWND hWnd;

Void CtestView::OninitialUpdate()

hWnd=GetSafeHwnd();

pThread=AfxBeginThread(ThradFunction,hWnd);//启动线程

pThread->m_bAutoDelete=FALSE;//线程为手动删除

Cview::OnInitialUpdate();

}

////////////////////////////////////////////////////////////////

Void CtestView::OnDestroy()

{

bend=TRUE;//改变变量,线程结束

WaitForSingleObject(pThread->m_hThread,INFINITE);//等待线程结束

delete pThread;//删除线程

Cview::OnDestroy();

}

3、线程之间的通信

通常情况下,一个次级线程要为主线程完成某种特定类型的任务,这就隐含着表示在主线程和次级线程之间需要建立一个通信的通道。一般情况下,有下面的几种方法实现这种通信任务:使用全局变量(上一节的例子其实使用的就是这种方法)、使用事件对象、使用消息。这里我们主要介绍后两种方法。

(一)利用用户定义的消息通信

在Windows程序设计中,应用程序的每一个线程都拥有自己的消息队列,甚至工作线程也不例外,这样一来,就使得线程之间利用消息来传递信息就变的非常简单。首先用户要定义一个用户消息,如下所示:#define WM_USERMSG WMUSER+100;在需要的时候,在一个线程中调用::PostMessage((HWND)param,WM_USERMSG,0,0)或

CwinThread::PostThradMessage()来向另外一个线程发送这个消息,上述函数的四个参数分别是消息将要发送到的目的窗口的句柄、要发送的消息标志符、消息的参数WPARAM和LPARAM。下面的代码是对上节代码的修改,修改后的结果是在线程结束时显示一个对话框,提示线程结束:

while(!bend)

{

Beep(100,100);

Sleep(1000);

}

::PostMessage(hWnd,WM_USERMSG,0,0);

return 0;

}

////////WM_USERMSG消息的响应函数为OnThreadended(WPARAM wParam,

LPARAM lParam)

LONG CTestView::OnThreadended(WPARAM wParam,LPARAM lParam)

{

AfxMessageBox("Thread ended.");

Retrun 0;

}

上面的例子是工作者线程向用户界面线程发送消息,对于工作者线程,如果它的设计模式也是消息驱动的,那么调用者可以向它发送初始化、退出、执行某种特定的处理等消息,让它在后台完成。在控制函数中可以直接使用::GetMessage()这个SDK函数进行消息分检和处理,自己实现一个消息循环。GetMessage()函数在判断该线程的消息队列为空时,线程将系统分配给它的时间片让给其它线程,不无效的占用CPU的时间,如果消息队列不为空,就获取这个消息,判断这个消息的内容并进行相应的处理。

(二)用事件对象实现通信

在线程之间传递信号进行通信比较复杂的方法是使用事件对象,用MFC的Cevent类的对象来表示。事件对象处于两种状态之一:有信号和无信号,线程可以监视处于有信号状态的事件,以便在适当的时候执行对事件的操作。上述例子代码修改如下:

::WaitForSingleObject(threadStart.m_hObject,INFINITE); AfxMessageBox("Thread start.");

while(!bend)

{

Beep(100,100);

Sleep(1000);

Int result=::WaitforSingleObject(threadEnd.m_hObject,0);

//等待threadEnd事件有信号,无信号时线程在这里悬停

If(result==Wait_OBJECT_0)

Bend=TRUE;

}

::PostMessage(hWnd,WM_USERMSG,0,0);

return 0;

}

///////////////////////////////////////////////////////////// Void CtestView::OninitialUpdate()

{

hWnd=GetSafeHwnd();

threadStart.SetEvent();//threadStart事件有信号

pThread=AfxBeginThread(ThreadFunction,hWnd);//启动线程

pThread->m_bAutoDelete=FALSE;

Cview::OnInitialUpdate();

}

//////////////////////////////////////////////////////////////// Void CtestView::OnDestroy()

{

threadEnd.SetEvent();

WaitForSingleObject(pThread->m_hThread,INFINITE);

运行这个程序,当关闭程序时,才显示提示框,显示"Thread ended"。

4、线程之间的同步

前面我们讲过,各个线程可以访问进程中的公共变量,所以使用多线程的过程中需要注意的问题是如何防止两个或两个以上的线程同时访问同一个数据,以免破坏数据的完整性。保证各个线程可以在一起适当的协调工作称为线程之间的同步。前面一节介绍的事件对象实际上就是一种同步形式。Visual C++中使用同步类来解决操作系统的并行性而引起的数据不安全的问题,MFC支持的七个多线程的同步类可以分成两大类:同步对象(CsyncObject、Csemaphore、Cmutex、CcriticalSection和Cevent)和同步访问对象(CmultiLock和CsingleLock)。本节主要介绍临界区(critical section)、互斥(mutexe)、信号量(semaphore),这些同步对象使各个线程协调工作,程序运行起来更安全。

(一)临界区

临界区是保证在某一个时间只有一个线程可以访问数据的方法。使用它的过程中,需要给各个线程提供一个共享的临界区对象,无论哪个线程占有临界区对象,都可以访问受到保护的数据,这时候其它的线程需要等待,直到该线程释放临界区对象为止,临界区被释放后,另外的线程可以强占这个临界区,以便访问共享的数据。临界区对应着一个CcriticalSection对象,当线程需要访问保护数据时,调用临界区对象的Lock()成员函数;当对保护数据的操作完成之后,调用临界区对象的Unlock()成员函数释放对临界区对象的拥有权,以使另一个线程可以夺取临界区对象并访问受保护的数据。同时启动两个线程,它们对应的函数分别为WriteThread()和ReadThread(),用以对公共数组组array[]操作,下面的代码说明了如何使用临界区对象:

#include "afxmt.h"

int array[10],destarray[10];

CCriticalSection Section;

UINT WriteThread(LPVOID param)

{

Section.Lock();

for(int x=0;x<10;x++)

array[x]=x;

Section.Unlock();

}

UINT ReadThread(LPVOID param)

{

Section.Lock();

For(int x=0;x<10;x++)

Destarray[x]=array[x];

Section.Unlock();

}

上述代码运行的结果应该是Destarray数组中的元素分别为1-9,而不是杂乱无章的数,如果不使用同步,则不是这个结果,有兴趣的读者可以实验一下。

(二)互斥

互斥与临界区很相似,但是使用时相对复杂一些,它不仅可以在同一应用程序的线程间实现同步,还可以在不同的进程间实现同步,从而实现资源的安全共享。互斥与Cmutex类的对象相对应,使用互斥对象时,必须创建一个CSingleLock或CMultiLock对象,用于实际的访问控制,因为这里的例子只处理单个互斥,所以我们可以使用CSingleLock对象,该对象的Lock()函数用于占有互斥,Unlock()用于释放互斥。实现代码如下:#include "afxmt.h"

int array[10],destarray[10];

CMutex Section;

UINT WriteThread(LPVOID param)

{

CsingleLock singlelock;

singlelock (&Section);

singlelock.Lock();

for(int x=0;x<10;x++)

array[x]=x;

singlelock.Unlock();

}

UINT ReadThread(LPVOID param)

{

CsingleLock singlelock;

singlelock (&Section);

singlelock.Lock();

For(int x=0;x<10;x++)

Destarray[x]=array[x];

singlelock.Unlock();

}

(三)信号量

信号量的用法和互斥的用法很相似,不同的是它可以同一时刻允许多个线程访问同一个资源,创建一个信号量需要用Csemaphore类声明一个对象,一旦创建了一个信号量对象,就可以用它来对资源的访问技术。要实现计数处理,先创建一个CsingleLock或CmltiLock 对象,然后用该对象的Lock()函数减少这个信号量的计数值,Unlock()反之。下面的代码分别启动三个线程,执行时同时显示二个消息框,然后10秒后第三个消息框才得以显示。

///////////////////////////////////////////////////////////////////////// Csemaphore *semaphore;

Semaphore=new Csemaphore(2,2);

HWND hWnd=GetSafeHwnd();

AfxBeginThread(threadProc1,hWnd);

AfxBeginThread(threadProc2,hWnd);

AfxBeginThread(threadProc3,hWnd);

UINT ThreadProc1(LPVOID param)

{

CsingleLock singelLock(semaphore);

singleLock.Lock();

Sleep(10000);

::MessageBox((HWND)param,"Thread1 had access","Thread1",MB_OK);

return 0;

}

UINT ThreadProc2(LPVOID param)

{

CSingleLock singelLock(semaphore);

singleLock.Lock();

Sleep(10000);

::MessageBox((HWND)param,"Thread2 had access","Thread2",MB_OK);

return 0;

}

UINT ThreadProc3(LPVOID param)

{

CsingleLock singelLock(semaphore);

singleLock.Lock();

Sleep(10000);

::MessageBox((HWND)param,"Thread3 had access","Thread3",MB_OK);

return 0;

}

二、编程步骤

1、启动Visual C++6.0,生成一个32位的控制台程序,将该程序命名为"sequence"

2、输入要排续的数字,声明四个子线程;

3、输入代码,编译运行程序。

三、程序代码

/////////////////////////////////////////////////////////////////////////////// ///////

// sequence.cpp : Defines the entry point for the console application.

/*

主要用到的WINAPI线程控制函数,有关详细说明请查看MSDN;

线程建立函数:

HANDLE CreateThread(

LPSECURITY_ATTRIBUTES lpThreadAttributes, // 安全属性结构指针,可为NULL;DWORD dwStackSize, // 线程栈大小,若为0表示使用默认值;

LPTHREAD_START_ROUTINE lpStartAddress, // 指向线程函数的指针;

LPVOID lpParameter, // 传递给线程函数的参数,可以保存一个指针值;

DWORD dwCreationFlags, // 线程建立是的初始标记,运行或挂起;

LPDWORD lpThreadId // 指向接收线程号的DWORD变量;

);

对临界资源控制的多线程控制的信号函数:

HANDLE CreateEvent(

LPSECURITY_ATTRIBUTES lpEventAttributes, // 安全属性结构指针,可为NULL;BOOL bManualReset, // 手动清除信号标记,TRUE在WaitForSingleObject后必须手动//调用RetEvent清除信号。若为FALSE则在WaitForSingleObject

//后,系统自动清除事件信号;

BOOL bInitialState, // 初始状态,TRUE有信号,FALSE无信号;

LPCTSTR lpName // 信号量的名称,字符数不可多于MAX_PATH;

//如果遇到同名的其他信号量函数就会失败,如果遇

//到同类信号同名也要注意变化;

);

HANDLE CreateMutex(

LPSECURITY_ATTRIBUTES lpMutexAttributes, // 安全属性结构指针,可为NULL BOOL bInitialOwner, // 当前建立互斥量是否占有该互斥量TRUE表示占有,

//这样其他线程就不能获得此互斥量也就无法进入由

//该互斥量控制的临界区。FALSE表示不占有该互斥量

LPCTSTR lpName // 信号量的名称,字符数不可多于MAX_PATH如果

//遇到同名的其他信号量函数就会失败,

//如果遇到同类信号同名也要注意变化;

);

//初始化临界区信号,使用前必须先初始化

VOID InitializeCriticalSection(

LPCRITICAL_SECTION lpCriticalSection // 临界区变量指针

);

//阻塞函数

//如果等待的信号量不可用,那么线程就会挂起,直到信号可用

//线程才会被唤醒,该函数会自动修改信号,如Event,线程被唤醒之后

//Event信号会变得无信号,Mutex、Semaphore等也会变。

DWORD WaitForSingleObject(

HANDLE hHandle, // 等待对象的句柄

DWORD dwMilliseconds // 等待毫秒数,INFINITE表示无限等待

);

//如果要等待多个信号可以使用WaitForMutipleObject函数

*/

#include "stdafx.h"

#include "stdlib.h"

#include "memory.h"

HANDLE evtTerminate; //事件信号,标记是否所有子线程都执行完

/*

下面使用了三种控制方法,你可以注释其中两种,使用其中一种。

注意修改时要连带修改临界区PrintResult里的相应控制语句

*/

HANDLE evtPrint; //事件信号,标记事件是否已发生

//CRITICAL_SECTION csPrint; //临界区

//HANDLE mtxPrint; //互斥信号,如有信号表明已经有线程进入临界区并拥有此信号static long ThreadCompleted = 0;

/*用来标记四个子线程中已完成线程的个数,当一个子线程完成时就对ThreadCompleted进行加一操作, 要使用InterlockedIncrement(long* lpAddend)和

InterlockedDecrement(long* lpAddend)进行加减操作*/

//下面的结构是用于传送排序的数据给各个排序子线程

struct MySafeArray

{

long* data;

int iLength;

};

//打印每一个线程的排序结果

void PrintResult(long* Array, int iLength, const char* HeadStr = "sort");

//排序函数

unsigned long __stdcall BubbleSort(void* theArray); //冒泡排序

unsigned long __stdcall SelectSort(void* theArray); //选择排序

unsigned long __stdcall HeapSort(void* theArray); //堆排序

unsigned long __stdcall InsertSort(void* theArray); //插入排序

/*以上四个函数的声明必须适合作为一个线程函数的必要条件才可以使用CreateThread 建立一个线程。

(1)调用方法必须是__stdcall,即函数参数压栈顺序由右到左,而且由函数本身负责

栈的恢复, C和C++默认是__cdecl, 所以要显式声明是__stdcall

(2)返回值必须是unsigned long

(3)参数必须是一个32位值,如一个指针值或long类型

(4) 如果函数是类成员函数,必须声明为static函数,在CreateThread时函数指针有特殊的写法。如下(函数是类CThreadTest的成员函数中):

static unsigned long _stdcall MyThreadFun(void* pParam);

handleRet = CreateThread(NULL, 0, &CThreadTestDlg::MyThreadFun, NULL, 0,

&ThreadID);

之所以要声明为static是由于,该函数必须要独立于对象实例来使用,即使没有声明实例也可以使用。*/

int QuickSort(long* Array, int iLow, int iHigh); //快速排序

int main(int argc, char* argv[])

{

long data[] = {123,34,546,754,34,74,3,56};

int iDataLen = 8;

//为了对各个子线程分别对原始数据进行排序和保存排序结果

//分别分配内存对data数组的数据进行复制

long *data1, *data2, *data3, *data4, *data5;

MySafeArray StructData1, StructData2, StructData3, StructData4;

data1 = new long[iDataLen];

memcpy(data1, data, iDataLen << 2); //把data中的数据复制到data1中

//内存复制 memcpy(目标内存指针, 源内存指针, 复制字节数), 因为long的长度//为4字节,所以复制的字节数为iDataLen << 2, 即等于iDataLen*4 StructData1.data = data1;

StructData1.iLength = iDataLen;

data2 = new long[iDataLen];

memcpy(data2, data, iDataLen << 2);

StructData2.data = data2;

StructData2.iLength = iDataLen;

data3 = new long[iDataLen];

memcpy(data3, data, iDataLen << 2);

StructData3.data = data3;

StructData3.iLength = iDataLen;

data4 = new long[iDataLen];

memcpy(data4, data, iDataLen << 2);

StructData4.data = data4;

StructData4.iLength = iDataLen;

data5 = new long[iDataLen];

memcpy(data5, data, iDataLen << 2);

unsigned long TID1, TID2, TID3, TID4;

//对信号量进行初始化

evtTerminate = CreateEvent(NULL, FALSE, FALSE, "Terminate");

evtPrint = CreateEvent(NULL, FALSE, TRUE, "PrintResult");

//分别建立各个子线程

CreateThread(NULL, 0, &BubbleSort, &StructData1, NULL, &TID1);

CreateThread(NULL, 0, &SelectSort, &StructData2, NULL, &TID2);

CreateThread(NULL, 0, &HeapSort, &StructData3, NULL, &TID3);

CreateThread(NULL, 0, &InsertSort, &StructData4, NULL, &TID4);

//在主线程中执行行快速排序,其他排序在子线程中执行

QuickSort(data5, 0, iDataLen - 1);

PrintResult(data5, iDataLen, "Quick Sort");

WaitForSingleObject(evtTerminate, INFINITE); //等待所有的子线程结束

//所有的子线程结束后,主线程才可以结束

delete[] data1;

delete[] data2;

delete[] data3;

delete[] data4;

CloseHandle(evtPrint);

return 0;

}

/*

冒泡排序思想(升序,降序同理,后面的算法一样都是升序):从头到尾对数据进行两两比较进行交换,小的放前大的放后。这样一次下来,最大的元素就会被交换的最后,然后下一次循环就不用对最后一个元素进行比较交换了,所以呢每一次比较交换的次数都比上一次循环的次数少一,这样N次之后数据就变得升序排列了*/

unsigned long __stdcall BubbleSort(void* theArray)

{

long* Array = ((MySafeArray*)theArray)->data;

int iLength = ((MySafeArray*)theArray)->iLength;

int i, j=0;

long swap;

for (i = iLength-1; i > 0; i--)

{

for(j = 0; j < i; j++)

{

if(Array[j] > Array[j+1]) //前比后大,交换

{

swap = Array[j];

Array[j] = Array[j+1];

Array[j+1] = swap;

}

}

}

PrintResult(Array, iLength, "Bubble Sort"); //向控制台打印排序结果InterlockedIncrement(&ThreadCompleted); //返回前使线程完成数标记加1

if(ThreadCompleted == 4) SetEvent(evtTerminate); //检查是否其他线程都已执行完//若都执行完则设置程序结束信号量

return 0;

}

/*选择排序思想:每一次都从无序的数据中找出最小的元素,然后和前面已经有序的元素序列的后一个元素进行交换,这样整个源序列就会分成两部分,前面一部分是已经排好序的有序序列,后面一部分是无序的,用于选出最小的元素。循环N次之后,前面的有序序列加长到跟源序列一样长,后面的无序部分长度变为0,排序就完成了。*/

unsigned long __stdcall SelectSort(void* theArray)

{

long* Array = ((MySafeArray*)theArray)->data;

int iLength = ((MySafeArray*)theArray)->iLength;

long lMin, lSwap;

int i, j, iMinPos;

for(i=0; i < iLength-1; i++)

{

lMin = Array[i];

iMinPos = i;

for(j=i + 1; j <= iLength-1; j++) //从无序的元素中找出最小的元素

{

if(Array[j] < lMin)

{

iMinPos = j;

lMin = Array[j];

}

}

//把选出的元素交换拼接到有序序列的最后

lSwap = Array[i];

Array[i] = Array[iMinPos];

Array[iMinPos] = lSwap;

}

PrintResult(Array, iLength, "Select Sort"); //向控制台打印排序结果InterlockedIncrement(&ThreadCompleted); //返回前使线程完成数标记加1

if(ThreadCompleted == 4) SetEvent(evtTerminate);//检查是否其他线程都已执行完//若都执行完则设置程序结束信号量

return 0;

}

/*堆排序思想:堆:数据元素从1到N排列成一棵二叉树,而且这棵树的每一个子树的根都是该树中的元素的最小或最大的元素这样如果一个无序数据集合是一个堆那么,根元素就是最小或最大的元素堆排序就是不断对剩下的数据建堆,把最小或最大的元素析透出来。下面的算法,就是从最后一个元素开始,依据一个节点比父节点数值大的原则对所有元素进行调整,这样调整一次就形成一个堆,第一个元素就是最小的元素。然后再对剩下的无序数据再

进行建堆,注意这时后面的无序数据元素的序数都要改变,如第一次建堆后,第二个元素就会变成堆的第一个元素。*/

unsigned long __stdcall HeapSort(void* theArray)

{

long* Array = ((MySafeArray*)theArray)->data;

int iLength = ((MySafeArray*)theArray)->iLength;

int i, j, p;

long swap;

for(i=0; i

{

for(j = iLength - 1; j>i; j--) //从最后倒数上去比较字节点和父节点

{

p = (j - i - 1)/2 + i; //计算父节点数组下标

//注意到树节点序数跟数组下标不是等同的,因为建堆的元素个数逐个递减

if(Array[j] < Array[p]) //如果父节点数值大则交换父节点和字节点

{

swap = Array[j];

Array[j] = Array[p];

Array[p] = swap;

}

}

}

PrintResult(Array, iLength, "Heap Sort"); //向控制台打印排序结果InterlockedIncrement(&ThreadCompleted); //返回前使线程完成数标记加1

if(ThreadCompleted == 4) SetEvent(evtTerminate); //检查是否其他线程都已执行完//若都执行完则设置程序结束信号量

return 0;

}

/*插入排序思想:把源数据序列看成两半,前面一半是有序的,后面一半是无序的,把无序

的数据从头到尾逐个逐个的插入到前面的有序数据中,使得有序的数据的个数不断增大,同时无序的数据个数就越来越少,最后所有元素都会变得有序。*/

unsigned long __stdcall InsertSort(void* theArray)

{

long* Array = ((MySafeArray*)theArray)->data;

int iLength = ((MySafeArray*)theArray)->iLength;

int i=1, j=0;

long temp;

for(i=1; i

{

temp = Array[i]; //取出序列后面无序数据的第一个元素值

for(j=i; j>0; j--) //和前面的有序数据逐个进行比较找出合适的插入位置

{

if(Array[j - 1] > temp) //如果该元素比插入值大则后移

Array[j] = Array[j - 1];

else //如果该元素比插入值小,那么该位置的后一位就是插入元素的位置

break;

}

Array[j] = temp;

}

PrintResult(Array, iLength, "Insert Sort"); //向控制台打印排序结果InterlockedIncrement(&ThreadCompleted); //返回前使线程完成数标记加1

if(ThreadCompleted == 4) SetEvent(evtTerminate); //检查是否其他线程都已执行完//若都执行完则设置程序结束信号量

return 0;

}

/*快速排序思想:快速排序是分治思想的一种应用,它先选取一个支点,然后把小于支点的元素交换到支点的前边,把大于支点的元素交换到支点的右边。然后再对支点左边部分和右

边部分进行同样的处理,这样若干次之后,数据就会变得有序。下面的实现使用了递归

建立两个游标:iLow,iHigh;iLow指向序列的第一个元素,iHigh指向最后一个先选第一个元素作为支点,并把它的值存贮在一个辅助变量里。那么第一个位置就变为空并可以放置其他的元素。这样从iHigh指向的元素开始向前移动游标,iHigh查找比支点小的元素,如果找到,则把它放置到空置了的位置(现在是第一个位置),然后iHigh游标停止移动,这时iHigh指向的位置被空置,然后移动iLow游标寻找比支点大的元素放置到iHigh指向的空置的位置,如此往复直到iLow与iHigh相等。最后使用递归对左右两部分进行同样处理*/

int QuickSort(long* Array, int iLow, int iHigh)

{

if(iLow >= iHigh) return 1; //递归结束条件

long pivot = Array[iLow];

int iLowSaved = iLow, iHighSaved = iHigh; //保未改变的iLow,iHigh值保存起来while (iLow < iHigh)

{

while (Array[iHigh] >= pivot && iHigh > iLow) //寻找比支点大的元素

iHigh -- ;

Array[iLow] = Array[iHigh]; //把找到的元素放置到空置的位置

while (Array[iLow] < pivot && iLow < iHigh) //寻找比支点小的元素

iLow ++ ;

Array[iHigh] = Array[iLow]; //把找到的元素放置到空置的位置

}

Array[iLow] = pivot; //把支点值放置到支点位置,这时支点位置是空置的

//对左右部分分别进行递归处理

QuickSort(Array, iLowSaved, iHigh-1);

QuickSort(Array, iLow+1, iHighSaved);

return 0;

}

//每一个线程都要使用这个函数进行输出,而且只有一个显示器,产生多个线程

第10周-《网络操作系统》复习题

训练课题:_《网络操作系统》复习题第__10_周 一、填空题 1、Windows Server2003有两种授权模式:(每服务器)和(每客户)。 2、在Active Directory中有两种类型的组:(本地用户账户)和(域用户账户)。 3、在安装Windows NT Server后, 系统会自动创建两个全局帐号, 一个是(administrator) , 另一个是(Guest)。 4、Windows 2000动态磁盘可支持多种特殊的动态卷,包括(简单卷)、(跨区卷)(RAID-5卷)、带区卷、镜像卷等。 5、NTFS权限有6个基本的权限:完全控制、(修改)、读取及运行、列出文件夹目录、(读取)、(写入)。 6、使用C类IP地址的网络可支持的主机数为(254 )台。 7、IP地址共占用(32)个二进制位,一般是以4个(十进制)进制数来表示。 8、在OSI参考模型中,TCP是(传输)层上的协议,IP是(网络)层上的协议。 9、DNS域名解析的方法主要有(递归查询法) , (迭代查询法) 10、DNS是一个分布式数据库系统,它提供将域名转换成对应的( IP 地址)信息。 11、FTP服务器默认使用TCP协议的(21)号端口。

12、Web服务使用的默认TCP端口号为(80) 13、通过对打印机设置优先级,可以让重要的文档优先打印。 14、Windows网络的管理方式有:工作组和域。 15、在一个TCP/IP网络中,实现为计算机自动分配IP地址的服务,叫做 DHCP服务。 16、为了向用户提供完全合格域名(FQDN)的解析功能,需要在网络中安装并配置DNS 服务器。 17、针对不同的用户和环境,Windows Server2003产品的版本有:标准版、 Web版、标准版、数据中心版。 18、在Windows Server 2003中安装活动目录的命令是____dcpromo_____,活动目录存放在____活动目录数据库__________中。 19、Windows Server 2003服务器的3种角色是__域控制器____、_成员服务器__、_独立服务器__。 20、一个基本磁盘最多可分为_4__个区,即__4__个主分区或___3___个主分区和一个扩展分区。 21、DNS顶级域名中表示商业组织的是___com___。 二、单项选择题 1、在Windows Server 2003支持的文件系统格式中,能够支持

认识Windows操作系统教学设计

认识windows操作系统 教学目标:1、熟练的打开桌面上的图标 2、了解开始菜单栏、快速工具栏、布告栏的作用 4、能熟练掌握开机和关机的顺序。 2、开始菜单栏、任务栏、布告栏的作用 教具使用:计算机 教学过程: 算机资源的管理。最初流行的操作系统是Dos,需要用户键入口令才能执行操作,后来逐渐出现了以windows 为代表的图形操作系统,windows98、windows 2000和windows XP是目前最流行的视窗操作系统。学习windows操作系统的基本知识和基本操作方法学:一、桌面的组成: 二、各部分的功能:桌面背景:指Windows 桌面的背景图案,可以根据自己的爱好更换.

图标:一个图标代表一个应用程序,在图标上双击左键,就会激活并执行这个应用程序. 图标名:显示这个应用程序的作用. 开始菜单栏:单击它,可以进入Windows xp的开始菜单,并执行各项功能. 快速启动工具栏:只需要单击图标就可以打开该软件。 快速启动工具栏的图标:单击 桌面上的图标:双击 相同点:作用相同。 任务栏:1、每打开一个窗口,在任务栏上自动生成一个按钮。 2、可以在多个窗口之间来回切换。 布告栏:显示计算机一些设备的连接状态,输入法、时钟、音箱按钮都在这里显示。 学生活动: 1、请两位同学分别用两种方法打开“浏览器”。 2、练习任务栏的作用。请几位同学分别打开“我的电脑”和“我的文档”,并且可以在两个窗口之间来回切换。 三、计算机的打开和关闭: 1、启动计算机: (1)、先打显示器电源开关。 (2)、再打开主机箱上的电源开关。 2、关闭计算机:

关闭 学生活动:1、在讲解的过程中指导学生开机和关机。 2、学生自主练习开机和关机。 点:只有正确的打开和关闭计算机,我们才能够很好的使用计算机,延长计算机的寿命。 结:本节课我们主要学习桌面的组成用其各部分的功能,重点是如何打开图标,及开始菜单栏、快速启动工具栏、任务栏和布告栏的作用。其中开始菜单栏、任务栏和布告栏的作用要大家熟练掌握。按正确的顺序启动和关闭计算机也是我们必须掌握的,只有这样我们才能熟练的使用计算机,并合理地利用它为我们服务。 练:1、正确的开机和关机。 2、开始菜单栏的主要功能。 3、任务栏的作用。 4、输入法的选择。

Windows网络操作系统管理期末练习(2010

Windows网络操作系统管理期末练习 一、填空题 1.Windows Server 2003的标准版本适用于中、小型企业,主要用作服务器,提供 各种常见的网络功能,如:文件服务、打印服务、通信服务、Web服务等。 2.通过查看硬件兼容性列表文件,可以确认Windows Server 2003操作系统是否 与一台计算机的硬件设备兼容。 3.在检测软件兼容性时,需要在winnt32.exe命令后附加的参数为 checkupgradeonly。 4.Windows Server 2003支持的文件系统格式有:FA T、FA T32和ntfs。 5.在Windows Server 2003中,ntfs文件系统格式支持文件加密。 6.为了能够实现网络通信,管理员需要为计算机上的网卡等网络设备设置TCP/IP参数, 包括:ip地址、子网掩码和默认网关等。 7.在安装硬件设备时,一般需要同时安装这个设备的驱动程序,该程序一般由 硬件设备的开发厂商提供。 8.对于即插即用的硬件设备,Windows Server 2003能够自动检测并进行 安装。 9.对于非即插即用的硬件设备,只能由用户手工安装。 10.如果希望重新使用一个被禁用的设备,应该对该设备的执行启用的操作。 11.在工作组中,每台计算机均把自己的资源信息和安全信息存放在本地的SAM或安 全账户管理数据库中。 12.在工作组中的一台计算机上所创建的用户账户,被称为本地或本机用户账 户。 13.在网络中工作、使用网络资源的人被称为用户。 14.如果一个员工长时间不工作,那么为安全起见,管理员应该将他的用户帐户禁 用。 15.在一个工作组中,每台Windows计算机的内置管理员帐户能够在本地计算机的 SAM数据库中创建并管理本地用户帐户。 16.在Windows计算机上不能对文件实施共享,而只能对文件夹实施共享。 17.管理员在对文件夹实施共享之后,必须设置权限,这样才能保证用户访问 共享文件夹的安全。 18.当创建共享文件夹时,如果在它的共享名的后面附加一个$符号,那么当用 户通过网络访问这台计算机时将看不到这个共享文件夹。

WINDOWS 网络操作系统的发展史

WINDOWS 网络操作系统的发展史 2009-05-21 18:16 网络操作系统的发展史 Microsoft开发的Windows是目前世界上用户最多、并且兼容性最强的操作系统。最早的Windows操作系统从1985年就推出了。改进了微软以往的命令、代码系统Microsoft Dos。Microsoft Windows是彩色界面的操作系统。支持键鼠功能。默认的平台是由任务栏和桌面图标组成的。任务栏是显示正在运行的程序、“开始”菜单、时间、快速启动栏、输入法以及右下角的托盘图标组成。而桌面图标是进入程序的途径。默认的系统图标有“我的电脑”、“我的文档”、“回收站”,另外,还会显示出系统的自带的“IE浏览器”图标。运行Windows的程序主要操作都是由鼠标和键盘控制的。鼠标的左键单击默认是是选定命令,鼠标左键双击是运行命令。鼠标右键单击是弹出菜单。WIndows系统是“有声有色”的操作系统。《连线》杂志日前发表分析文章称,在过去的23年中,Windows操作系统经历了一个从无到有,从低级到高级的发展过程。总体趋势是功能越来越强大了,用户使用起来越来越方便了,但其发展进程并非是一帆风顺的,中间也曾多次出现曲折。应用最广泛的Windows操作系统在不断地发展,其发展进程充满了不确定性。Windows的成功与处理器速度的提高和内存容量的增加可谓“休戚与共”。微软依靠大量第三方软件让用户喜欢上了Windows。 1、Windows 1.0 Windows 1.0 微软第一款图形用户界面Windows 1.0的发布时间是1985年11月,比苹果Mac晚了近两年。由于微软与苹果间存在一些法律纠纷,Windows 1.0缺乏一些关键功能,例如重叠式窗口和回收站。用现在的眼光看,它的失败并不令人感到意外。Windows 1.0只是对MS-DOS的一个扩展,它本身并不是一款操作系统,但确实提供了有限的多任务能力,并支持鼠标。Microsoft Windows 1.0操作系统是微软公司在个人电脑

网络操作系统复习题

一、单项选择题每小题2分 2.操作系统中采用多道程序设计技术来提高CPU和外部设备的() A.利用率 B.可靠性 C.稳定性 D.兼容性 答案:A 解析:多道程序设计的主要目的是充分利用系统的所有资源且尽可能地让它们并行操作。 3.允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算 机的操作系统是() A.网络操作系统 B.分布式操作系统 C.分时操作系统 D.实时操作系统 答案:C 解析:在一个系统中,如果多个用户分时地使用同一个计算机,那么这样的系统就称为分时系统。由此可知本题选C。 4.可以使系统并行操作更有效的是() A.采用进程 B.采用线程 C.采用分页存贮 D.采用批处理 答案:B 解析:采用线程提高系统的并行性比采用进程实现并行性更有效。 5.在下面对进程的描述中,不正确的是() A.进程是动态的概念

答案:D 解析:程序是指令的有序集合,是静态的概念;而程序和数据集合是进程存在的物质基础,即进程的实体。 6.在请求分页存储管理中,若采用FIFO页面淘汰算法,当分配的页面数增加时,缺页中断的 次数() A.减少 B.增加 C.无影响 D.可能增加也可能减少 答案:D 解析:缺页中断的次数与分配的页面数无关,因此在采用FIFO页面淘汰算法时中所产生的缺页中断的次数可能增加,也可能减少。 7.在下列文件的物理结构中,不利于文件长度动态增长的是() A.连续结构 B.串联结构 C.索引结构 D.Hash结构 答案:A 解析:连续结构是指一个逻辑文件的信息存放在文件存储器上的相邻物理块中,因此这种方法不利于文件长度动态增长。 8.位示图方法用于() A.进程的调度 B.盘空间的管理 C.文件的共享 D.进程间的通讯 答案:B 解析:位示图法为文件存储器存储空间建立一张位示图,用以反映整个存储空间的分配情况。

认识Windows7系统教案

项目二使用Windows 7 操作系统为了使计算机系统的所有资源能协调一致地工作,必须要有一个软件来进行统一管理和调度,这种软件就是操作系统。Windows 7是美国Microsoft公司推出的新一代操作系统平台它继承了Windows XP的实用与Windows Vista的华丽,同时进行了一次大的升华。 本项目从基本概念、基本操作、文件管理、个性化设置和应用维护工具等几个方面介绍Windows 7系统的使用和操作方法。 任务一使用Windows 7操作系统 一、任务描述 对于刚刚购买电脑的初学者,首先需要学习操作系统的基本使用方法。本任务将展示在Windows 7操作系统,从启动操作系统、初步应用操作系统到最后退出系统的全过程。二、任务分析 要使用电脑并能初步应用,首先要学会操作系统的启动和关闭,并且有一定的顺序;要认识桌面图标和任务栏,了解Windows 7窗口的构成,学会窗口的多种操作方法;学会使用鼠标,了解不同鼠标样式代表的不同状态。 三、相关知识点 1.启动Windows 7 Windows 7的基本启动过程。 2.认识Windows 7的桌面 ⑴认识桌面图标 进入Windows 7系统后,整个屏幕显示如图2-1-1所示的桌面。与其它版本的Windows 类似,用户通常可以把一些常用的应用程序图标放置在桌面上,便于使用。 桌面图标是由一个形象的小图标和说明文字组成,图标作为它的标识,文字则表示它的名称或者功能。常用的图标有以下几个: ①“计算机”图标 “计算机”图标是计算机中所有资源的代表,双击图标就可以打开“计算机”窗口,可看到本计算机的所有硬件和软件资源信息。 ②“Administrator”图标 “Administrator”文件夹主要用来存放用户常规使用的文件信息。 ③“回收站”图标 这是Windows系统的“垃圾箱”。回收站是计算机硬盘中的一块特定区域,可以存放暂时被删除的文件或文件夹,若想恢复被删除的信息,可以再次把它们从“回收站”中捡回(还原)。但是,当文件或文件夹在回收站中被删除后,就不能再恢复了。 ④“网络”图标 通过它可以查看连入本地网络(邻近)的计算机,在条件允许的情况下,可以通过网上邻居连入本地网络中的其它计算机,从而达到资源互访的目的。 ⑤“Internet Explorer”图标 这是Windows系统中的浏览器,通过它用户可以方便地进入Internet浏览网页。

Windows 操作系统操作题答案

任务1: (1)将“Internet Explorer”图标锁定到任务栏。 (2)将“”程序从任务栏解锁。 解题步骤: (1)双击打开桌面图标“Internet Explorer”→右击任务栏“Internet Explorer”图标→将此程序锁定到任务栏。 (2)右击任务栏中“”图标→将此程序从任务栏解锁 任务2: (1)把考生文件夹根目录下的所有扩展名为“jpg”的文件移动到“图片”文件夹下。 (2)把“简历”文件夹移动到“我的资料”文件夹下。 (3)把“考试”文件夹更名为“测试”。 解题步骤: (1)打开考生文件夹→在搜索栏中输入“*.jpg”后点击搜索按钮→Ctrl+A→Ctrl+X →回到考生文件夹中找到“图片”文件夹→Ctrl+V。 (2)单击选中“简历”文件夹→Ctrl+X→找到“我的资料”文件夹→Ctrl+V。 (3)右击“考试”文件夹→重命名→输入“测试”后按Enter。 任务3: (1)将考生文件夹下wintest文件夹下的位图文件“图像1”设为隐藏属性。 (2)在考生文件夹下新建文件夹“学生”并用记事本建立一个名为的文件保存到“学生”文件夹中,文件内容为:科技为本。将所建立的文件设为只读和隐藏属性。 (3)设置文件夹选项,设置为不显示隐藏的文件、文件夹或驱动器。 解题步骤: (1)双击打开wintest文件夹→右击“图像1”→勾选“隐藏”→应用→确定。 (2)打开考生文件夹→点击工具栏中的新建文夹→在新文件夹图标的名称栏输入“学生”→按回车键→开始→程序→附件→记事本→输入“科技为本”→点击“文件”中的“保存”→在名称栏输入SOWER,在地址栏找到“学生”文件夹→保存→右击→勾选“只读”和“隐藏”→应用→确定。 (3)打开考生文件夹→选择菜单栏中的“工具”菜单→文件夹选项→点击查看选项卡→在高级设置中,勾选“不显示隐藏的文件、文件夹或驱动器”→应用→确定。 任务4: (1)在考生文件夹下建立“我的练习”文件夹,在此文件下建立“文字”、“图片”、“多媒体”三个子文件夹。 (2)查找考生文件夹下文件,并将它复制到“多媒体”文件夹中。 (3)将“文本.rtf”文件设置为隐藏和存档属性。 (4)将“电器”文件夹中“电视”文件夹下的文件移动到“你好”文件夹中。 (5)在考生文件夹下创建“你好”文件夹的快捷方式,名称为“你好”。 解题步骤: (1)打开考生文件夹→点击工具栏中的新建文夹→在新文件夹图标的名称栏输入“我的练习”→按回车键→在“我的练习”文件夹中,点击工具栏中的新建文夹→在新文件夹图标的名称栏输入“文字”→点击工具栏中的新建文夹→在新文件夹图标的名称栏输入“图片”应用→点击工具栏中的新建文夹→在新文件夹图标的名称栏输入“多媒体”。 (2)打开考生文件夹→在搜索栏输入“”,点击搜索按钮→在右窗中选中搜索结果

最新网络操作系统期末复习资料

一、单项选择题(请将所选答案的代码填入括号中)1.对网络用户来说,操作系统是指()。 A.能够运行自己应用软件的平台 B.提供一系列的功能、接口等工具来编写和调试程序的裸机C.一个资源管理者 D.实现数据传输和安全保证的计算机环境 2.网络操作系统主要解决的问题是()。 A.网络用户使用界面 B.网络资源共享与网络资源安全访问限制C.网络资源共享D.网络安全防范 3.以下属于网络操作系统的工作模式是()。 A.TCP/IP B.ISO/OSI模型C.Client/Server D.对等实体模式4.目录数据库是指()。 A.操作系统中外存文件信息的目录文件 B.用来存放用户账号、密码、组账号等系统安全策略信息的数据文件 C.网络用户为网络资源建立的一个数据库 D.为分布在网络中的信息而建立的索引目录数据库 5.关于组的叙述以下哪种正确()。 A.组中的所有成员一定具有相同的网络访问权限 B.组只是为了简化系统管理员的管理,与访问权限没有任何关系 C.创建组后才可以创建该组中的用户 D.组账号的权限自动应用于组内的每个用户账号 6.计算机之间可以通过以下哪种协议实现对等通信()。 A.DHCP B.DNS C.WINS D.NETBIOS 7.要实现动态IP地址分配,网络中至少要求有一台计算机的网络操作系统中安装()。 A.DNS服务器B.DHCP服务器C.IIS服务器D.PDC主域控制器 8.UNIX系统中用户的有效用户组()。 A.任意时刻可以有多个B.运行时是不可变 C.被设置为用户在passwd文件中的gid项规定的用户组D.以上这些说法都不对 9.在UNIX操作系统中与通信无关的文件是()。 A./etc/ethersB./etc/hostsC./etc/servicesD./etc/shadow 10.不是NDS中的对象为()。 A.根B.容器C.叶D.枝 二、多项选择题: 1.Windows NT具有如下特点()。 A.支持对等式和客户机/服务器网络B.增加网络的软件和硬件变得简便C.与现有网络较强的交互操作能力D.支持分布式应用程序 2.Windows NT系统中的NTDS包含了()等系统的安全策略设置信息。 A.用户账号B.密码C.访问权限D.组账号3.域中安装Windows NT Server 的计算机有(),它们是一种不平等的关系。 A.主域控制器(PDC)B.备份域控制器(BDC) C.成员控制器 D.成员服务器 4.下列说法正确的是()。 A.网络中某台主机的IP地址是唯一的 B.网络中某台主机的IP地址每位不能全部为1,这个地址是TCP/IP的广播地址

Windows网络操作系统管理系统

判断题 1.一个工作组中可以包含域。() 2.可以把一个工作组加入到域中。() 3.与域相比,工作组具有更高的安全级别。() 4.域属于分散的管理模式,每台计算机的管理员分别管理各自的计算机,安全级别不高, 适用于小型的网络。() 5.一台计算机不能同时属于多个域。() 6.在一个物理网络中,可以同时建立多个域。() 7.在安装即插即用设备时,操作系统往往检测不到这个设备,因此需要手工配置它的驱动 程序与资源信息。() 8.虚拟内存可以代替物理内存。若经常发生内存不够使用的情况时,建议安装更多的虚拟 内存。() 操作题 1.请使用U盘制作Windows Server 2008 R2的操作系统安装盘。 操作步骤: 步骤1:①。 步骤2:下载并安装名为“UltraISO”的软件。 步骤3:②。 步骤4:在弹出的对话框中,选中Windows Server 2008 R2的映像文件。 步骤5:将U盘通过USB接口连接到计算机上。 步骤6:③。 步骤7:④。 步骤8:在弹出的警告数据丢失窗口中单击【是】按钮,确定继续操作。 步骤9:当单击【写入】按钮后,UltraISO软件开始在选定的U盘或移动硬盘中写入Windows Server 2008 R2的映像文件。 至此,便制作完成可安装Windows Server 2008 R2的U盘了。 【答案选项】 A.在“写入磁盘映像”窗口中的“磁盘驱动器”处选择希望写入的U盘;在“写入方式”中选中“USB-HDD+”,然后单击【写入】按钮。 B. 准备Windows Server 2008 R2的映像文件。 C.运行UltraISO软件,在程序窗口中单击“文件”→“打开”。 D.在UltraISO软件窗口中,单击“启动”→“写入硬盘映像”。 请填写:①:②:③:④:

网络操作系统试卷-A(答案)

(10)运行Windows Server 2003的计算机的磁盘分区可以使用三种: FAT16 、FAT32 、 NTFS 类型的文件系统。 (11)Windows Server 2003将磁盘存储类型分为两种:基本磁盘存储和动态磁盘存储。 (12)系统管理员可以为访问服务器资源的客户机设置磁盘配额,也就是限制它们一次性访问服务器资源的卷空间数量。 (13)带区卷又称为 RAID-0 技术,RAID-1又称为镜像卷,RAID-5又称为具有奇偶校验的带区卷。 (14)WINS工作过程有名称注册、名称刷新、名称解析、名称释放四个阶段。 (15)DHCP是采用客户端/服务器模式。 (16)工作组模式的特点是采用分布式的管理方式,资源和用户账号分散在各个计算机上,每个计算机上都有一套目录数据库,用以验证在该计算机上创 建的本地用户。 二、单项选择题:(每小题二分,共四十分) (1)有一台服务器的操作系统是Windows 2000 Server,文件系统是NTFS,无任何分区,现要求对该服务进行Windows Server 2003的安装,保留原数据,但不保留操作系统,应使用下列( B )种方法进行安装才能满足需求。 A、在安装过程中进行全新安装并格式化磁盘 B、对原操作系统进行升级安装,不格式化磁盘 C、做成双引导,不格式化磁盘 D、重新分区并进行全新安装 (2)在设置域账户属性时( C )项目不能被设置。 A、账户登录时间 B、账户的个人信息 C、账户的权限 D、指定账户登录域的计算机 (3)下列( C )账户名不是合法的账户名。 A、abc_123 B、windows book C、dictionar* D、abdkeofFHEKLLOP (4)Windows Server 2003组策略无法完成下列( A )设置。 A、操作系统安装 B、应用程序安装 C、控制面板 D、操作系统版本更新

《Windows Server 2003网络操作系统》2套期末考试卷AB试卷模拟测试卷-带答案

《Windows Server 2003网络操作系统》模拟试卷一 一、填空题(20空,每空1分) 1、一个基本磁盘上最多能有_____个主分区。 2、在加密技术中,作为算法输入的原始信息称为_______。 3、在Internet中计算机之间直接利用IP地址进行寻址,因而需要将用户提 供的主机名转换成IP地址,我们把这个过程称为___________________。 4、V PN使用的2种隧道协议是________________________、 _______________________。 5、共享文件夹的权限有___________、 _________和________。 6、Windows Server 2003有两种不同的客户访问许可证(CAL):_________ 和_____________。 7、数字签名通常利用公钥加密方法实现,其中发送者签名使用的密钥为发送 者的_________。 8、可以用来检测DNS资源创建的是否正确的两个命令是___________、 ____________。 9、User1是Group1、Group2和Group3的成员。Group1拥有Folder A的“读” 权限;Group3拥有Folder A的完全控制的权限;Group2没有Folder A的 权限。那么,User1对Folder A的有效权限是_____________。 10、集群的主要优点有_________、__________和_________。 11、W indows Server 2003在“事件查看器”中默认显示的三个日志是 ______________、______________、_______________。 二、选择题(30题,每题1.5分) 1、Windows Server 2003标准版支持的CPU数量为( ) A.4 B.6 C.8 D.12

Windows网络操作系统管理 第一章课后实训题

第一章Windows网络操作系统的安装与配置 思考题 (1)Windows Server 2008 R2操作系统有哪几个版本,各有什么特点? 答:Windows Server 2008 R2操作系统有4个版本:1、标准版,它的特点是具有服务器操作系统所具备的基本功能,2、企业版,它的特点是提供了更强的扩展性与可用性,3、数据中心版,它是Windows Server 2008 R2的最高级版本,4、Web版,该版本功能单一且价格低廉。 (2)Windows网络的管理架构主要有哪两种?各有什么特点? 答:Windows网络的管理架构主要有:1、工作组,属于分散式管理模式,2、域,属于集中式的管理模式。 (3)在安装操作系统时,全新安装与升级安装有什么不同? 答:1、全新安装,用户将得到一个全新的操作系统环境,2、升级安装,原有的大部分系统设置和应用程序会被保留在新的Windows Server 2008 R2内。 (4)即插即用设备与非即插即用设备的安装时有什么不同? 答:1、即插即用设备,操作系统能够检测到这个设备并自动安装和配置它的驱动程度与资源信息。2、非即插即用设备,操作系统往往检测不到这个设备,因此需手动配置它的驱动程序与资源信息 (5)如何判断IP地址冲突? 答:使用Ping命令访问本地计算机的IP地址,以检查该IP地址是否与其他计算机的IP地址发生冲突 (6)如何设置Windows防火墙,从而使QQ软件可以在公用网络位置上使用? 答:方法为:单击【开始】→【控制面板】→【系统安全】→【Windows防火墙】→【打开或关闭Windows防火墙】→【公用网络】→【确定】 (7)如何使用设备管理器查看计算机上安装的硬件设备? 答:在桌面上右击【计算机】→【属性】→【设备管理器】 (8)在什么情况下需要更新设备的驱动程序? 答:当一个设备的驱动程度出现了新的版本后 (9)在什么情况下需要执行“回滚驱动程序”的操作? 答:当设备的驱动程序升级为最新版本后出现了工作不正常时 (10)如何更改默认启动的操作系统? 答:在桌面上右击【计算机】→【属性】→【高级系统设置】→“高级”选项卡→【启动和故障恢复】→【设置】→在“默认操作系统”处选择一个希望默认启动的操作系统 (11)如何使用任务管理器来关闭一个已经停止响应的应用程序? 答:在任务管理器的“应用程序”选项卡中,选中要关闭的应用程序后单击【结束任务】按

网络操作系统最主要的作用是处理

网络操作系统最主要的作用是处理 B 资源的最大共享及资源共享的局限性之间的矛盾 下面关于Windowns NT描述正确的是 D 如果BDC出现故障,PDC可以转换为BDC UNIX系统中具有最高权限的用户名是 B.root Netware的核心协议(NCP)提供了一系列的 D 控制协议 网络通信软件的任务是根据协议来控制和管理 D 程序间通信 Netware采用的通信协议是 D SPX/IPX ====================================================================== 1.Windows NT是一种(). 多用户多进程系统 2.网络操作系统是一种()。 系统软件 3.网络操作系统为网络用户提供了两级接口:网络编程接口和()。 操作命令接口 4.构成网络操作系统信息机制的是()。 B.通信原语 5.网络操作系统主要解决的问题是()。 网络资源共享与网络资源安全访问限制 6.以下属于网络操作系统的工作模式为()。 Client/Server ===================================================================== 1, 下面的操作系统中,不属于网络操作系统的是() DOS

2. 对网络用户来说,操作系统是指() 一个资源管理者 3. UNIX是一种() 多用户多进程系统 4. 允许一台主机同时连接多台客户端,同时为多个客户端提供服务的计算机的操作系统是() 网络操作系统 5. 下列不属于网络操作系统的安全性的是() 用户能管理和中止系统运行 6.在客户/服务器模式下的网络操作系统主要是指() 服务器操作系统

操作系统介绍与安装完整版.doc

认识操作系统 系统简介 定义 :操作系统(英语:Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操 操作系统所处位置 作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。 操作系统的功能:包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,提供了各种形式的用户界面,使用户有一个好

的工作环境,为其它软件的开发提供必要的服务和相应的接口。 操作系统的种类:各种设备安装的操作系统可从简单到复杂,可分为智能卡操作系统、实时操作系统、传感器节点操作系统、嵌入式操作系统、个人计算机操作系统、多处理器操作系统、网络操作系统和大型机操作系统。 按应用领域划分主要有三种: 桌面操作系统、 服务器操作系统 嵌入式操作系统。 ○1桌面操作系统 桌面操作系统主要用于个人计算机上。个人计算机市场从硬件架构上来说主要分为两大阵营,PC机与Mac 机,从软件上可主要分为两大类,分别为类Unix操作系统和Windows操作系统: 1、Unix和类Unix操作系统:Mac OS X,Linux发行

版(如Debian,Ubuntu,Linux Mint,openSUSE,Fedora等); 一个流行Linux发行版——Ubuntu桌面 Mac OS X桌面 2、微软公司Windows操作系统:Windows XP,Windows Vista,Windows 7,Windows 8等。 Windows 8 Metro Windows 8桌面 ○2服务器操作系统 服务器操作系统一般指的是安装在大型计算机上的操作系统,比如Web服务器、应用服务器和数据库服务器等。服务器操作系统主要集中在三大类: 1、Unix系列:SUN Solaris,IBM-AIX,HP-UX,

windows server 2008网络操作系统期末复习题一

1.下列哪个命令用来清空DNS客户端缓存?() 2. A. Ipconfig /all /displaydns 3. /flushdns 4.下列哪个命令用来释放DHCP客户端的IP地址?() 5. A. Ipconfig /all /release 6./renew 7.在一个局域网中利用DHCP服务器为网络中的所有主机提供动态IP地址分配,DHCP服 务器的IP地址为,在服务器上创建一个作用域为并激活。在DHCP服务器选项中设置003为,在作用域选项中设置003为,则网络中租用到IP地址的DHCP客户端所获得的默认网关地址应为多少?() 8. A. B. 9. C. D.操作系统下,实现磁盘配额可以在以下哪个文件系统中使用( ) 10. 11.对于NTFS权限描述错误的是() 12. A. 没有文件和文件夹级的安全性 B. 内置文件加密功能 13. C. 拥有磁盘配额功能 D. 内置文件压缩功能 14.虚拟主机技术,不能通过()来架设网站。 15.A、主机名B、TCP端口C、IP地址D、计算机名 16.在因特网域名中,通常表示( ) 17. A.商业组织 B.教育机构 C.政府部门 D.军事部门 18.TCP和UDP的一些端口保留给一些特定的应用使用。为HTTP协议保留的端口号为 () 19.的80端口的8000端口 20.的25端口的25端口 21.用户Boss是Management组和Accounting组中的一个成员。Management组对于共享 为Annual Reports的文件夹具有NTFS 读权限,Accounting组对于同一个文件夹具有NTFS完全控制的权限。为了防止其他所有用户查看这个共享文件夹的内容,您给予了EveryOne组对于该文件夹的拒绝读取权限。Boss用户对Annual Reports这个共享文件夹中的内容具有的访问权限是() A.禁止访问B.读和执行 C.读、写、执行和删除D.完全控制

《Windows网络操作系统管理》作业1-4答案

Windows网络操作系统管理作业1答案 一、填空题(每空2分,共20分) 1.用户帐户 2.PPTP 3.Administrator 4.SAM 5.非即插即用 6.本地域 7.一 8.DHCP 9.辅助 10.WINS 二、单项选择题(每小题2分,共20分) 1.A2.A3.C4.D5.B 6.A7.C8.C9.C10.A 三、判断题(判断下列叙述是否正确,正确的划Ö号,错误的划´号,标记在括号中。每小题2分,共16分) 1.´2.√3.´4.√ 5.√6.´7.´8.´ 四、简答题(每题8分,共24分) 1.答:(共8分) 首先,在一台打印服务器上创建两个(多个)逻辑打印机,这两个打印机映射到同一台打印设备。(2分) 其次,为了保证高级主管的紧急文档优先打印,需要对这两个逻辑打印机设置权限,例如:对第一个逻辑打印机设置只有高级主管才具有打印权限,对第二个逻辑打印机设置普通员工具有打印权限。(3分) 最后,把第一个逻辑打印机的优先级设置得比第二个逻辑打印机的优先级更高。例如:第一个逻辑打印机的优先级为:99,而第二个逻辑打印机的优先级为:1。(3分)2.答:(共8分) “用户”与“用户帐户”具有不同的含义。(2分) 其中,“用户”是指在网络中工作、使用网络资源的人;例如:王约翰是一家公司的员工,他需要在公司的网络中工作,那么他就是该网络中的一个用户。(3分)而“用户帐户”是指用户在网络中工作时所使用的身份标志。例如:王约翰必须使用一个特定的身份(如:user1)才能够访问网络,那么他所使用的这个身份标志(即:user1)就是一个用户帐户。(3分) 3.答:(共8分) 与手工分配IP地址相比,自动分配IP地址主要具有以下优点: (1)由于自动分配IP地址而不是手工分配IP地址,所以大大减轻了管理员的工作负担。(3分)

网络操作系统试题总汇要点

一、填空题 1.网络操作系统应具有()、存储管理、设备管理、文件管理、 ()和()管理的功能。 2.Windows NT有四个特殊组。包括Network组、()、Everyone组和 Greater Owner组。 3.工作组是以(源)为主要目的的一组计算机和用户。其特点是采用 ()的管理方式。 4.Windows NT可以支持的文件系统是(),但也对() 文件系统兼容。 5.成员服务器可以被提升为()。 6.对用户账号和共享资源实施管理的是()组。 7.UNIX系统中,一个文件的许可权有()、()和其他。 8.UNIX系统中,系统与用户终端之间建立连接和表明身份的过程称为()。 9.网络操作系统需要解决的一对矛盾是()和(性)。 10.在安装了Windows NT Server之后,系统会自动建立两个账号()和 ()。 11.在Windows NT中,组分为全局组、()和特殊组。 12.Microsoft Windows NT server 操作系统被设计用于()服务器。它既是一个 个人计算机操作系统,又是一个()。它将()和基本操作结合,易于使用和管理。 13.在Netware中建立一个用户账号,需要在NDS中创建一个用户对象,然后设置对象的 ()和()。 14.匿名账户的名称是()。 15.在Internet信息服务(IIS)管理器中,设置FTP站点的访问权限有 和。 16.传输层有(_ __)、(_ _)两种协议。 17.TCP/IP参考模型由(_)、(_)、()、 链路层4层组成。 18.一般情况下,核心内存的值越()越好。 19.能够标识一个Web网站的三个方面是()、()、 ()。 20.动态主机配置协议英文是(_ )。 21.电子邮件使用协议和协议完成邮件的收发工作。 22.假设一台客户机是由DHCP分配IP地址,当释放此IP地址时,可输入() 命令。 23.在网络中提供域名与IP地址解析服务的服务器是()。 24.Windows Server 2003有四个版本,分别为:、、、。 25.推荐Windows Server 2003安装在(_ )文件系统分区。 26.某企业规划有2台Windows Server 2003和50台Windows 2000 professional,每台服务 器最多只有15个人会同时访问,最好采用(_ )授权模式。

windows-server-2008网络操作系统期末复习题(全)

一、选择题(本大题共20小题,每小题2分,共40分) 1.下列哪个命令用来清空DNS客户端缓存?() A. Ipconfig /all B.Ipconfig /displaydns C.Ipconfig /flushdns D.Ipconfig 2.下列哪个命令用来释放DHCP客户端的IP地址?() A. Ipconfig /all B.Ipconfig /release C.Ipconfig /renew D.Ipconfig 3.在一个局域网中利用DHCP服务器为网络中的所有主机提供动态IP地址分配,DHCP服 务器的IP地址为192.168.8.1/24,在服务器上创建一个作用域为192.168.8.11~200/24并激活。在DHCP服务器选项中设置003为192.168.8.254,在作用域选项中设置003为192.168.8.253,则网络中租用到IP地址192.168.8.20的DHCP客户端所获得的默认网关地址应为多少?() A. 192.168.2.1 B. 192.168.2.254 C. 192.168.2.253 D. 192.168.2.20 4.Windows操作系统下,实现磁盘配额可以在以下哪个文件系统中使用( ) A.FAT16 B.FAT32 C.NTFS D.ext2 5.对于NTFS权限描述错误的是() A. 没有文件和文件夹级的安全性 B. 置文件加密功能 C. 拥有磁盘配额功能 D. 置文件压缩功能 6.虚拟主机技术,不能通过()来架设。 A、主机名 B、TCP端口 C、IP地址 D、计算机名 7.在因特网域名中,.com通常表示( ) A.商业组织 B.教育机构 C.政府部门 D.军事部门 8.TCP和UDP的一些端口保留给一些特定的应用使用。为HTTP协议保留的端口号为 () A.TCP的80端口 B.UDP的8000端口 C.TCP的25端口 D.UDP的25端口 9.用户Boss是Management组和Accounting组中的一个成员。Management组对于共享为 Annual Reports的文件夹具有NTFS 读权限,Accounting组对于同一个文件夹具有NTFS 完全控制的权限。为了防止其他所有用户查看这个共享文件夹的容,您给予了EveryOne 组对于该文件夹的拒绝读取权限。Boss用户对Annual Reports这个共享文件夹中的容具有的访问权限是() A.禁止访问B.读和执行

网络操作系统试卷A附答案

一名词解释 1 NetBIOS名称 2递归查询 3 DHCPREQUEST 4组织单位 5镜像卷 二单选 1、如果一个主机的IP地址为172.168.2.198,那么这个主机是属于那一类网络() A A类网络 B B类网络 C C类网络 D 无法确定 2 、当安装Windows 2000 Server时, 会询问计算机的名称, 请问下面哪个语句描述了计算机名称的作用.( ) A. 计算机名称就是NetBIOS名称, 通过它可以在网上识别计算机. 只要不在一个网络内, 就允许两台计算机有相同的名字. B. 计算机名称就是NetBIOS名称, 通过它可以在网上识别计算机. 两台计算机绝不能有相同的名字. C. 通过计算机名字可以识别连接到某一个域控制器的计算机. 计算机名称至少由两个字母组成, 且名称中必须含有域名. D. 计算机名称随情况而不同, 并且在用户第一次登录时, 必须输入计算机名称. 3、将一个磁盘分区的所有内容精确的拷贝到另一个磁盘分区的卷是下面哪一种()。 A、RAID-5卷 B、带区卷 C、磁盘镜像 D、简单卷 4、假设某人不想让使用他的工作站的人访问他正在处理的一些文件。他应如何做才能达到目的()。 A、将这些文件的属性设为隐藏 B、将文件存储到桌面上,桌面具有安全性选项实现密码保护 C、用FAT格式化硬盘。FAT具有内置的对基于帐号的访问控制的支持 D、用NTFS格式化硬盘。NTFS具有内置的对基于帐号的访问控制的支持 5、Windows 2000 Sever 中具有最高权限的用户是( ) A、administrator B、root C、supervisor D、guest 6、DNS的功能为() A.将物理地址映射为网络地址 B.将IP地址映射为MAC地址 C.将MAC地址映射为IP地址 D.将主机名映射为IP地址 7、当客户机检测到其所使用的IP地址在网络上存在冲突时,将向DHCP服务器发出( ) A DHCPRELEASE B DHCPDECLINE C DHCPINFORM D DHCP REQUEST 8、关于FTP站点下列说法正确地是( ) A FTP服务是一种实时的联机服务,是基于C/S模式的 B FTP站点也可以创建虚拟目录,其虚拟目录可以分为本地虚拟目录和远程虚拟目录. C在一台服务器上我们可以使用IP地址、端口号和主机头名来维持多个FTP站点。 D FTP服务可以同时使用两个端口号进行传送,这两个端口都可以用于从传送指令消息和数

Windows操作系统(教案)

认识Windows操作系统教学设计教材分析: 认识windows操作系统是贵州科技出版社小学三年级实验教材第二单元活动2。这节课的主要内容是让学生知道windows操作系统的界面,鼠标的操作。 学生分析: 1.本节课是在学生学习了身边的信息和计算机的组成的基础上进行的教学活动,学生已有学习windows操作系统的基础。 2.学生对计算机的各种设备只有初步的认识,对操作实践还需老师的讲解、演示加学生亲手练习。 3.学生要想进一步学习计算机,必须得从操作系统的认识开始。 教学目标: 1.初步认识Windows操作系统桌面、桌面图标和任务栏。 2.掌握启动和退出Windows的方法。 3.认识Windows菜单,掌握菜单的基本操作。 4.认识鼠标的基本操作 教学重点: Windows界面 教学难点: 鼠标和菜单的基本操作。 课型: 新授课 教学方法: 讲解法、示范法、练习法。

课时安排: 一课时 教学过程: 一、导入 师:同学们,上节课我们学习了“揭开神秘机器的面纱”这一课,我们认识了计算机,你们还记得计算机的分类吗? 生:台式计算机和笔记本 师:随着信息技术的发展,计算机经历了许多次变革,功能越来越强大,成为人们生活中必不可少的工具,因此人们习惯地称它为“电脑”) 师:从外观上看,计算机包含那些设备 生:鼠标、键盘、主机、显示器。 那你们想不想学会使用计算机呢?今天老师就和同学们一起走 进神奇的Windows操作系统。 板书课题:认识Windows操作系统 二、学习新课 活动1:启动Windows系统 师:你知道怎样启动Windows吗? (教师讲解启动Windows的方法:先开显示器,后开主机。因我们计算机室的电脑是一体机,所谓一体机电脑是指将传统分体台式机的主机集成在显示器的底座上,形成一体台式机,通俗一点来说,就是将电脑主机与显示器集成到了一起,形成了一个整体,只要将键盘和鼠标连接到显示器上,电脑就能正常使用。)

相关主题
文本预览
相关文档 最新文档