1) Modern microcomputer systems support multitasking. Applications can be written to spawn multiple threads to execute different parts of an application in parallel, thus reducing the total execution time. Examine five issues that can result from running thousands of threads that could reduce the total execution times of applications. (2) NMicroprocessors and operating systems that support virtual memory make it possible to use more memory in a system than physically installed. Examine five problems that applications could experience as a result of virtual memory. Determine which problem out of the five has the most impact. (3) Provide three best practices that operating systems designers and developers could use to decide on which CPU scheduling algorithm to implement. Select the CPU scheduling algorithm that you would use for a robot controlled by an operating system and explain why. (4) Compare and contrast an NOS with an RTOS. Determine at least three criteria that should be used to decide on whether to use an NOS or RTOS in a distributed architecture.