You are on page 1of 13

Bit Nibble Byte Kilobit Kilobyte Kibibit Kibibyte Mebibit Mebibyte Megabit Megabyte Gibibit Gibibyte Gigabyte Gigabit

Tebibit Tebibyte Terabyte Terabit Pebibit Pebibyte Petabit Petabyte Exabyte Exabit Exbibit Exbibyte Zettabyte Yottabyte

Value of 0 or 1 4 Bits 8 Bits 1,000 bits 1,000 bytes 1,024 bits 1,024 bytes 1,048,576 bits 1,048,576 bytes 1,000,000 bits 1,000,000 bytes 1,073,741,824 bits 1,073,741,824 bytes 1,000,000,000 bytes 1,000,000,000 bits 1,099,511,627,776 bits 1,099,511,627,776 bytes 1,000,000,000,000 bytes 1,000,000,000,000 bits 1,125,899,906,842,624 bits 1,125,899,906,842,624 bytes 1,000,000,000,000,000 bits 1,000,000,000,000,000 bytes 1018 bytes 1018 bits 260 bits 260 bytes 1021 bytes 1024 bytes

FAT
Short for File Allocation Table, method used by Microsoft operating systems to keep track of the contents of a disk the table is a chart of numbers that correspond to cluster addresses on the hard drive. FAT12: The oldest type of File Allocation Table that uses 12-bit binary system. A hard disk drive formatted using FAT12 can use a maximum of approximately 16,736,256 volume size and today is not longer used. If your computer is running Windows 95 or above and your FAT within FDISK is being displayed as FAT12 it is likely that your hard disk drive is corrupted, bad or has a computer virus.

Access light Also known as the activity light. Commonly found with Windows 3. See FAT32 Page for extended information about FAT32. Access arm Also known as a head arm or actuator arm. Active partition Partition on a hard disk drive that is set as the bootable partition and generally contains the operating system to be used on the computer. the access light is a LED on the front of a computer and/or disk drive that indicates when the computer or disk drive is being used. FAT16 while becoming obsolete by FAT32 is still commonly found. first used in Windows 95 OSR2 and more so in Windows 98 that saves disk space by using 4k Cluster. Only one partition on a computer can be set as an active or bootable partition on a hard disk drive.x through Windows 95. Below is a basic illustration of the inside of a hard disk drive as well as an example of the access arm. The access arm allows the hard drive to move the read/write heads to the locations where information needs to be read or written to. Complete information about partitions and fdisk can be found on our fdisk page . FAT32: Enhanced File Allocation Table utilizing a 28-bit binary system. the access arm is similar to an arm on a record player and is found inside all computer hard disk drives.FAT16: FAT utilizing a 16-bit binary system.

ADSM Short for ADSTAR Distributed Storage Management. . Anti vibration mount Drive bay mount that locks the hard drive or other 3. 2.Actuator An actuator is an electronic device controlled by a motor that moves the head arm to where it needs to go. When referring to memory. However.5-inch device in one place so that the read/write heads and other mechanisms are protected from movement. ADSM is IBM's software that helps clients manage storage devices. In the past the actuator within a hard disk drive was controlled by a stepper motor. Group of reserved sectors on a computer hard disk drive. today the actuator is commonly controlled by a servo motor. Allocation unit 1.5-inch device in a 5. an allocation is a process preformed by the computer that assigns a block of memory for a program to store its data or information in. This mount is highly recommended when installing any 3.25-inch drive bay in a computer.

each CD-R can cost from $3. DVD offers an initial storage capacity of 4. Many CD-ROM and CD-R drives may have a difficult time reading these disks. Once a CD-R disk is finished recording the CD will be able to be used in any standard CD-ROM.(Digital Versatile Disc) New standard released in 1995 which originally was called Digital Video Disc was later changed to Digital Versatile Disc.00 and are capable of holding up to 650 MB per CD-R disk (74 minutes of music / up to 99 audio tracks) no larger. MULTIPLE SESSIONS CD-R Multiple Session CD-R discs were first implemented by Kodak to allow CD-R disks to be written to until the CD is completely full. DVD-RAM discs cannot be read by standard DVD-ROM drives because of the differences in both reflectivity of the medium and the data format. You must have a XA-compliant or XA-ready CD-ROM drive to read all the sessions on a CD-R disc. CDRW has the capability of being written to at least one thousand times.7GB (of digital information on a single-sided. This unfortunately means if you encounter errors or do not complete the recording process the CD may become useless. The drawback with CD-RW diskettes is with the lower reflectivity of the disc itself can limit the readability. your access is limited to the data in the first session recorded. CD-R. OTHER CD TECHNOLOGIES CD-ROM -(Compact Disk Read Only Memory) The standard type of CD-ROM drive which is now shipped and found in the majority of computers today. CD-RW. With a CD-R you can browse the CD and choose individual or multiple files and restore them immediately. CD-R drives are only capable of recording to the CD once. However . Once the CD-R disk is placed within the computer the recording process begins the laser heats and the dye reveals the areas to diffuse light just as a regular CD would. Otherwise. Tape drives are linear-access devices which can become time consuming if you wish to only recover one / few files. Because of this method of creating a CD. .CD-R ABCs A CD-R (Compact Disk Recordable) is a special type of CD which is coated with a photosensitive organic dye which allows a user to record information to a special type of cd for backup and duplication purposes. or DVD drive. The CD-R drive does not actually create pits on the CD instead the burner creates reflective sections on the CD causing the computers CD-ROM laser to interpret it as a pit. DVD . While tape drives are a low cost solution per MB when compared to a CD-R disk. CD-RW .ReWritable drive type that uses a phase-change technology like the CDRW drives.(CD ReWritable) drive which is a popular alternative to the CD-R drive.00 to $10. CD-Rs are a low cost solution for backing up software. single-layer disc the same diameter and thickness of a current CD-ROM DVD-RAM . There were issues with reading CD-R disks in the first revision of DVD.

Within this window remove anything listed but explorer or systray. Master on IDE channel. 13 milliseconds access time or better. CD-ROM Properties. If you have Windows 95 / Windows 98 you can check this by pressing and holding CTRL + ALT + DEL which will bring up a close program window. It is recommended that your Hard Disk Drive is 13 milliseconds or faster access time to keep the memory buffer full. Ensure that you have defragged and ran scandisk on your hard drive recently which will help prevent the computer from having to search the hard disk drive longer. If enabled and the computer has no activity this will cause the screen saver to activate possible causing a bad CD. If your CD-R is an IDE or EIDE device it is highly recommended that you have the CDR drive as the master and not the slave. Ensure that all power management is disabled on the computer. . All programs removed from this window will return after rebooting the computer. Disable Power Management. Ensure within device manager there are no conflicts. Compression software can cause several issues during the recording process.CD RECORDING TIPS No running programs in the background. Device Conflicts. Also ensure that screen savers are not enabled. Get to device manager by clicking Start / Settings / Control panel / double click the System icon / click the Device manager tab. PC Defrag & Scandisk hard disk drive. Do not use compression software. It is recommend that you do not create CDs off of a compressed hard disk drive. If the computer or a computer component goes into power saving mode during the recording process this can cause issues.

How does the browser know to go to a certain IP address when you enter a domain like google. 4. ISA can be used only on XT.Opteron. Different CD-R disks.Duron. track 0. arbitrary amoung. which only had 1 MB of memory. How do you clear CMOS password? Since CMOS is a special chip with its own battery. capable of switching between Real mode (just like the real 8086) and Protected mode.any characters. Where does the Real mode on the CPU come from? The original 8086. L2 is external. if nothing is there. What’s the maximum hard drive size for FAT16-based Windows system? 2 GB. 4). Name the processor lines of two major manufacturers? High-end: Intel Pentium (II. 3. 6. 2.Itanium 2. and DMA are all disabled. WHat are * and ? when using them for wildcards in Windows? * . and since the company had to backward-support the 8086. cylinder 0 of the primary active partition. AMD . the best way to clear out a CMOS chip is to disconnect it from its power supply. head 0. application memory and high memory. To check this click on Start / Settings / Control Panel / double click on System / Click the device manager tab / click the plus next to CD-ROM and double click the CD-ROM device.Athlon. What’s the speed and device maximum specs for Firewire? IEEE 1394 (Firewire) supports the maximum of 63 connected devices with speeds up to 400 Mbps. 7. . 11. which is the current mode of operation. The extended partition can only have 23 logical drives. AT and ATX boards. All the modern Intel-based processors run in the Enhanced mode. AMD . it queries the ISP’s DNS server. 5. 12.Celeron. If you have attempted the above recommendations and continue to receive errors during the writing process attempt to use a different type of CD-R disk.In device manager under the CD-ROM properties ensure that Auto insert notification / Sync Data Transfer. What are the basic expansion card types?ISA and PCI. How many logical drives is it possible to fit onto a physical disk? Maximum of 24 logical drives. Where does CPU Enhanced mode originate from? Intel’s 80386 was the first 32-bit processor. 9. The industry now considers ISA obsolete. A+ and basic PC questions 1. Where’s MBR located on the disk? Main Boot Record is located in sector 0. III. What’s the difference between L1 and L2 cache? Level 1 cache is internal to the chip. 64bit: Intel . Low-end: Intel . AMD . 10. ? . 8.single character. This megabyte is split into low memory for IRQ tables.com? It searches through local DNS cache.

Turnaround time. 6. Turnaround time – amount of time to execute a particular process. the physical memory and storage parts of the memory one disk when they are not actively being used. Process must be done within the defined constraints or the system will fail. Since there are many possibly conflicting requests for resources the operating system must decide which requests are allocated resources to operating the computer system efficiently and fairly. when a process is waiting for some event to occur? . What are the basic functions of an operating system? . Operating system acts as resource allocator and manager. 3. Why paging is used? . What resources are used when a thread created? How do they differ from those when a process is created? . What is the important aspect of a real-time system or Mission Critical Systems? . Waiting time – amount of time a process has been waiting in the ready queue. What is Throughput.A real time operating system has well defined fixed time constraints.When a thread is created the threads does not require any new resources to execute the thread shares the resources like memory of the process to which they belong to. Response time – amount of time it takes from when a request was submitted until the first response is produced. waiting time and Response time? Throughput – number of processes that complete their execution per time unit. What is the state of the processor. An example is the operating system for a flight control computer or an advanced jet .Operating system questions 1. What is virtual memory? . 7.Operating system controls and coordinates the use of the hardware among the various applications programs for various uses. It is especially concerned with the operation and control of I/O devices. 2. which command would be used to duplicate the entire diskette? diskcopy 4. thus allowing a process to be allocating physical memory wherever the latter is available. Whereas if a new process creation is very heavyweight because it always requires new address space to be created and even if they share the memory then the inter process communication is expensive when compared to the communication between the threads. not output (for time-sharing environment).Virtual memory is hardware technique where the system appears to have more memory that it actually does.Paging is solution to external fragmentation problem which is to permit the logical address space of a process to be noncontiguous. Also operating system is control program which controls the user programs to prevent errors and improper use of the computer. While running DOS on a PC.Waiting state 8. This is done by timesharing. 5. The benefit of code sharing is that it allows an application to have several different threads of activity all within the same address space.

forcing it to continuously page fault. This goal requires that all delays in the system be bounded from the retrieval of the stored data to the time that it takes the operating system to finish any request made of it. multi threading? . sound. and some display systems. Multiprogramming creates logical parallelism. If the web server ran as a traditional single-threaded process.Multi programming: Multiprogramming is the technique of running several programs at a time using timesharing. Hard real-time: Secondary storage limited or absent. industrial control systems. It allows a computer to do several things at the same time. when that job needs to wait for any i/o operations the CPU is switched to another job. Often used as a control device in a dedicated application such as controlling scientific experiments. 11. A time-shared operating system uses CPU scheduling and multiprogramming to provide each user with a small portion of time-shared system. Multi tasking: Multitasking is the logical extension of multiprogramming . The system can detect thrashing by evaluating the level of CPU utilization as compared to the level of multiprogramming. or read-only memory (ROM). data stored in short term memory. A busy web server may have several of clients concurrently accessing it. So the main idea here is that the CPU is never idle. The concept of multiprogramming is that the operating system keeps several jobs in memory simultaneously. Soft real-time: Limited utility in industrial control of robotics.A hard real-time system guarantees that critical tasks complete on time.airplane. It can be eliminated by reducing the level of multiprogramming. As in hard real time systems kernel delays need to be bounded 10. virtual reality) requiring advanced operating-system features. multi programming. what can the system do to eliminate this problem? Thrashing is caused by under allocation of the minimum number of pages required by a process. In some situations a single application may be required to perform several similar tasks for example a web server accepts client requests for web pages. it would be able to service only one client at a time. Useful in applications (multimedia. What is multi tasking. Real-Time systems may be either hard or soft real-time. medical imaging systems. This approach would multithread the web-server process.The concept of multitasking is quite similar to multiprogramming but difference is that the switching between jobs occurs so frequently that the users can interact with each program while it is running. This concept is also known as time-sharing systems. not supported by general-purpose operating systems. the server would create a separate thread that would listen for client requests when a . A soft real time system where a critical real-time task gets priority over other tasks and retains that priority until it completes. 9. So it is efficient to have one process that contains multiple threads to serve the same purpose. What is the difference between Hard and Soft real-time systems? . The amount of time that a client might have to wait for its request to be serviced could be enormous. and so forth. images. Conflicts with time-sharing systems. Multi threading: An application typically is implemented as a separate process with several threads of control. The operating system selects a job from the job pool and starts executing a job. What is the cause of thrashing? How does the system detect thrashing? Once it detects thrashing.

18. Allocated memory may be slightly larger than requested memory.Hard disk is the secondary storage device. Total memory space exists to satisfy a request. and allocates the CPU to one of them. 15. which holds the data in bulk. dispatch latency – time it takes for the dispatcher to stop one process and start another running.request was made rather than creating another process it would create another thread to service the request. because the system does no useful work while switching. Scheduling under 1 and 4 is non-preemptive. 16. Internal Fragmentation: Internal fragmentation is the space wasted inside of allocated memory blocks because of restriction on the allowed sizes of allocated blocks.DRAM is not the best. Jumping to the proper location in the user program to restart that program. but it is not contiguous. What is Context Switch? . this size difference is memory internal to a partition.Switches from running to waiting state. 4. the existed of special instructions(such as a single instruction to load or store all registers). To get the advantages like responsiveness. What is cache memory? . What is fragmentation? Different types of fragmentation? . does the job. What is CPU Scheduler? . This task is known as a context switch. The capacitor tends to lose data unless it’s recharged every couple of milliseconds. but not being used 14. the amount of usable memory is drastically reduced. Context-switch time is pure overhead. and it holds the data on the magnetic medium of the disk.Terminates.Hard disks have a hard platter that holds the magnetic medium. 17. If too much external fragmentation occurs. Resource sharing economy and utilization of multiprocessor architectures multithreading concept can be used. and this recharging tends to slow down the performance of DRAM compared to speedier RAM types. All other scheduling is preemptive. 13. Its speed varies from machine to machine. Data is stored onto the disk in the form of files. the magnetic medium can be easily erased and rewritten. Switching to user mode. depending on the memory speed. and is available almost everywhere you look. and a typical desktop machine will have a hard disk with a capacity of between 10 and 40 gigabytes. the number of registers which must be copied.Cache memory is random access memory (RAM) that a computer microprocessor can access more quickly than it can access regular . External Fragmentation: External Fragmentation happens when a dynamic memory allocation algorithm allocates some memory and a small piece is left over that cannot be effectively used. What is hard disk and what is its purpose? . What is Dispatcher? .Selects from among the processes in memory that are ready to execute.Switches from waiting to ready.Dispatcher module gives control of the CPU to the process selected by the short-term scheduler.Fragmentation occurs in a dynamic memory allocation system when many of the free blocks are too small to satisfy any request. 2.Switching the CPU to another process requires saving the state of the old process and loading the saved state for the new process. this involves: Switching context. What is DRAM? In which form does it store data? .Switches from running to ready state. CPU scheduling decisions may take place when a process: 1. 3. 12. but it’s cheap. DRAM data resides in a cell made of a capacitor and a transistor.

3. mutex objects. usage count. 5. process objects. User can access these kernel objects structures? .Kernel objects are owned by the kernel. event objects. 2. System is in safe state if there exists a safe sequence of all processes. the function returns a handle that identifies the object. and so on) are the same across all object types. it looks first in the cache memory and if it finds the data there (from a previous reading of data). pipe objects. file objects.Several types of kernel objects.The usage count is one of the data members common to all kernel object types 8. What is a Real-Time System? . 20. whereas a file object has a byte offset. 19. semaphore objects. how do our applications manipulate these kernel objects? .Kernel object data structures are accessible only by the kernel 4. What is a kernel object? . If we cannot alter these Kernel Object structures directly. it does not have to do the more time-consuming reading of data from larger memory.A real time process is a process that must respond to the events within a certain time period.The answer is that Windows offers a set of functions that manipulate these structures in well-defined ways. Under most circumstances. and waitable timer objects. How does the kernel object outlive the process that created it? . These kernel objects are always accessible via these functions. Deadlock Avoidance: ensure that a system will never enter an unsafe state. I/O completion port objects. such as access token objects. What are kernel objects? . and an exit code. As the microprocessor processes data.RAM. and an open mode. a base priority. This memory block is a data structure whose members maintain information about the object. When you call a function that creates a kernel object. the kernel object is not necessarily destroyed. Which is the data member common to all the kernel object and what is the use of it? . but most are specific to a particular object type. system must decide if immediate allocation leaves the system in a safe state. How owns the Kernel Object? . but if another process is using the kernel object your process created. a sharing mode..Each kernel object is simply a memory block allocated by the kernel and is accessible only by the kernel. file-mapping objects. a process object has a process ID. the kernel knows not to destroy the object until the other process has stopped using it 7. What is a Safe State and what is its use in deadlock avoidance? . job objects.When a process requests an available resource. Some members (security descriptor.If your process calls a function that creates a kernel object and then your process terminates. For example. the object will be destroyed. mailslot objects. thread objects. not by a process 6. A real time operating system is an operating system that can run real time processes successfully Windows programming interview questions 1. How to identify the difference between the kernel object and user object? The easiest way to determine whether an object is a kernel object is to examine .

the system performs the following actions: When your process terminates. Internally. the kernel allocates a block of memory for the object and initializes it. the kernel then scans the process’s handle table for an empty entry 10.HANDLE CreateFile(. 13. the kernel destroys the object. one process could easily obtain the handle to an object that another process was using and wreak havoc on that process. 9..). 12. Kernel objects are protected with security. The creator of the object can prevent an unauthorized user from touching the object simply by denying access to it .HANDLE CreateFileMapping(. if the count is zero. If the table has any valid entries (objects that you didn’t close before terminating).)HANDLE CreateSemaphore(. What happens when the CloseHandle(handle) is called? . 11. 14. For kernel objects. If kernel object handles were system-wide values.the function that creates the object. the function looks in your process’s handle table to get the address of the kernel object you want to manipulate and then manipulates the object’s data structure in a well-defined fashion. not for User objects or GDI objects.HANDLE CreateThread(…). you pass the value returned by one of the Create* functions.Whenever you call a function that accepts a kernel object handle as an argument. Another reason for process-relative handles is security.Handle value is actually the index into the process’s handle table that identifies where the kernel object’s information is stored.)etcAll functions that create kernel objects return process-relative handles that can be used successfully by any and all threads that are running in the same process. the system allocates a handle table for it. How the handle helps in manipulating the kernel objects? . Then when a thread in the process calls a function that creates a kernel object. What is handle? . When a process first initializes. However. the system gets the address of the kernel object’s data structure and decrements the usage count member in the structure. the system automatically scans the process’s handle table.When a process is initialized.This function first checks the calling process’s handle table to ensure that the index (handle) passed to it identifies an object that the process does in fact have access to.will there be a memory leak? . Almost all functions that create kernel objects have a parameter that allows you to specify security attribute information.The most important reason was robustness.. and a process must request permission to manipulate an object before attempting to manipulate it. its handle table is empty. It is possible for a process to leak resources (such as kernel objects) while the process runs.Well. What is the need of process relative handles? . You forget to call CloseHandle . This handle table is used only for kernel objects. What is the purpose of Process Handle Table? .. If the usage count of any of these objects goes to zero. yes and no. the system closes these object handles for you. when the process terminates. such as CreateFileMapping . the kernel destroys the kernel object from memory. the operating system ensures that any and all resources used by the process are freed—this is guaranteed. If the index is valid. 15. Name few functions that create Kernel Objects? .

6)job object. 17. 5)file mapping. What is signaled and non signaled state? . Of course. 2) Events. And the Pzname parameter is NULL . When you create an unnamed object.Event.The system increments the usage count of the kernel object because two processes are now using the object. For the kernel object to be destroyed. and for each entry it finds that contains a valid inheritable handle. Wmain . the system copies the entry exactly into the child process’s handle table.A thread describes a path of execution within a process. Every time a process is initialized. There are APIs to create these objects with last parameter as the object name. 3) semaphore. 27. Semaphore 26.Takes an entry in one process’s handle table and makes a copy of the entry into another process’s handle table 22. But because you passed TRUE to CreateProcess’s bInheritHandles parameter. 18. 25. 4) waitableTimers. What do you mean by unnamed object? . 19. .When you are creating the kernel objects with the help of API’s like CreateMutex(. Which kernel objects are use for Thread Synchronization on different processes? . 20. This thread begins executing with the C/C++ run-time library’s startup code.Synchronization object s are use to coordinate the execution of multiple threads. you are indicating to the system that you want to create an unnamed (anonymous) kernel object.16. the system creates a primary thread. What about the usage count in the parent child process tables? . or WWinMain ) and continues executing until the entry-point function returns and the C/C++ runtime library’s startup code calls ExitProcess 23. . .Event is the thread synchronization object to set signaled state or non-signaled state. the system does one more thing: it walks the parent process’s handle table. empty process handle table for the child process—just as it would for any new process. How the handles are handled in the child process? . which in turn calls your entry-point function ( main . both the parent process and the child process must either call CloseHandle on the object or terminate. the system creates a new.Method available for sharing kernel objects across process boundaries is to name the objects.pzname).It means that the handle value that identifies a kernel object is identical in both the parent and the child processes. WinMain .The number of threads a process can create is limited by the available virtual memory and depends on the default stack size 24. An event is in non signaled state means that it will not release any thread that is . What are Named Objects? . What is Event Object and why it is used? . What is a thread? . you can share the object across processes by using either inheritance or DuplicateHandle 21. Why the entries in the parent process table and child table are same? . What is Synchronization Objects? . What is the limit on per process for creating a thread? . The entry is copied to the exact same position in the child process’s handle table as in the parent’s handle table.The operating system creates the new child process but does not allow the child process to begin executing its code right away.An event is in signaled state means that it has the capacity to release the threads waiting for this event to be signaled. Below are the kernel named objects 1) mutex. Mutex. What is DuplicateHandle (API)? .

to prevent two threads from writing to shared memory at the same time. The creating thread can request immediate ownership of the mutex object and can also specify a name for the mutex object 31. The state of a semaphore is set to signaled when its count is greater than zero. after this all the threads are released. Then the image application will reset the event to signaled state.Threads in other processes can open a handle to an existing named mutex object by specifying its name in a call to theOpenMutex .A mutex object is a synchronization object whose state is set to signaled when it is not owned by any thread. How do other threads own the mutex? . 30.A semaphore object is a synchronization object that maintains a count between zero and a specified maximum value. 28.the wait function blocks execution of the window-creation code. 32. the wait function blocks the requesting thread until the owning thread releases the mutex object using theReleaseMutex function.A thread uses the CreateMutex function to create a mutex object. . After writing to the shared memory. no more threads can successfully wait for the semaphore object state to become signaled. For example. The count is decremented each time a thread completes a wait for the semaphore object and incremented each time a thread releases the semaphore. APIs for creating event and set and reset the events .CreateEvent-to create the event OpenEvent – to open already created event SetEvent – to set the event signaled stateRestEvent . so PAIG created an event and set it to non-signaled state. How do I create a Mutex? . Two image application windows were created. each thread waits for ownership of a mutex object before executing the code that accesses the memory. If the mutex object is owned by another thread. When the count reaches zero. What is semaphores and why it is used? . What is Mutex Object and why it is used? .function. It uses a semaphore with a maximum count equal to the window limit.To set the Event To non-Signaled State 29. When the count is zero . The application specifies the semaphore object in call to one of the wait functions before each window is created. It acts as a gate that limits the number of threads sharing the resource to a specified maximum number.waiting for this particular event. and nonsignaled when it is owned. an application might place a limit on the number of windows that it creates. and non-signaled when its count is zero.example in our project: when user clicks the image application icon double simultaneously. Any thread with a handle to a mutex object can use one of the wait functions to request ownership of the mutex object.indicating that the window limit has been reached . The semaphore object is useful in controlling a shared resource that can support a limited number of users. decrementing the count whenever a window is created and incrementing it whenever a window is closed. the thread releases the mutex object. For example.