The most popular concurrency models include the shared memory model, message passing model, and actor model.
The shared memory model involves multiple threads or processes sharing a common memory space and communicating through that shared memory. The message passing model involves passing messages between different threads or processes to communicate. The actor model involves concurrent computation units, called actors, which communicate with each other through message passing. Each of these models has its own advantages and disadvantages and can be used in different scenarios depending on the requirements of the system being developed.
The most popular concurrency models include:
1. Threads: This model uses multiple threads of execution within a single process. Threads share the same memory space, making communication between them relatively easy, but requiring careful synchronization to avoid issues like race conditions and deadlocks.
2. Message Passing: In this model, independent processes or actors communicate by exchanging messages. This can be done using various mechanisms, such as message queues or channels. The main advantage of this model is the clear separation of concerns, as each process or actor is responsible for a specific task.
3. Event-driven: The event-driven model is based on the concept of events and event handlers. When an event occurs, a corresponding event handler is triggered, which performs a specific action. This model is particularly useful for managing asynchronous operations and is commonly used in GUI applications and web servers.
4. Data Parallelism: In this model, data is divided into smaller pieces, and each piece is processed concurrently by different execution units, typically on parallel hardware like GPUs. This model is particularly suitable for tasks that involve processing large amounts of data, like in scientific simulations or machine learning.
These models can be combined in various ways to suit specific application needs.
Learn more about concurrency models at: brainly.com/question/29981122
#SPJ11
9. In a linked implementation of a list, you only call the method getNodeAt when we remove an entry other than the first one.
In a linked implementation of a list, each element of the list is represented as a node object that contains a reference to the next node in the list.
This allows for efficient insertion and deletion of elements in the list, as we only need to update the references of adjacent nodes to remove or add a node. When we remove an entry from the list, we need to find the node that contains the entry in order to update the references of the adjacent nodes. In a simple implementation, we could traverse the list from the beginning until we find the node with the entry to remove. However, this would be inefficient if we are removing an entry that is not at the beginning of the list, as we would need to traverse the entire list up to that point.
Learn more about implementation here:
https://brainly.com/question/30498160
#SPJ11
Your friend broke both arms falling on ice. What could you suggest to help them while they are unable to use their hands to type? Select two options.
A. braille keyboard
B. TeleTYpe machine
C. speech synthesizer
D. microphone
E. voice-to-text software
The two options are:
C. speech synthesizer
D. microphone
What is the use of the microphone?The two options that could be suggested to help your friend while they are unable to use their hands to type are:
C. speech synthesizer: A speech synthesizer is a device or software that converts text into spoken words. Your friend can use this to compose and send messages or communicate without typing, by simply speaking their words aloud.
E. voice-to-text software: Voice-to-text software is a type of software that converts spoken words into written text. Your friend can use this to dictate their messages or documents, and the software will transcribe their speech into text without requiring them to type with their hands.
Both the speech synthesizer and voice-to-text software options allow your friend to communicate and create text-based content without using the
Read more about microphone here:
https://brainly.com/question/29934868
#SPJ1
A(n) ______ is thrown when a String that is not in proper URL format is passed to a URL constructor
A(n) MalformedURLException is thrown when a String that is not in proper URL format is passed to a URL constructor.
In computers, a string is a sequence of characters, such as letters, numbers, and symbols, that is treated as a single unit of data. Strings are used to represent text and other types of data that can be represented as a sequence of characters. They are commonly used in programming languages, such as Python, Java, and C++, to manipulate and store data. Strings can be concatenated, split, and searched using various operations and functions. They can also be converted to other data types, such as integers or floating-point numbers. Understanding how to manipulate strings is a fundamental skill for programming, as it allows for the creation of complex data structures and the processing of text-based data.
Learn more about String here:
https://brainly.com/question/14528583
#SPJ11
One reason for using an alias is when you are joining a table to itself. T/F
True. Using an alias is necessary when you join a table to itself in order to avoid confusion and ambiguity. When you join a table to itself, you essentially create two copies of the same table, and if you refer to columns using the table name alone, it is unclear which table you are referring to.
For example, if you have a table named "employees" and you want to join it to itself to find all pairs of employees who have the same manager, you would need to use aliases to distinguish between the two copies of the "employees" table. You could use "e1" and "e2" as aliases for the two copies of the table, and then refer to columns using the appropriate alias. Using aliases not only clarifies the syntax of the SQL statement but also helps to make it more readable and understandable for others who may need to work with the code in the future. It is a best practice to always use aliases when joining a table to itself or when joining multiple tables together in a single query.
Learn more about SQL statement here-
https://brainly.com/question/31580771
#SPJ11
What feature is used to color code cells based on their contents?
Conditional formatting feature is used to color code cells based on their contents.
Conditional formatting is used to color code cells based on their contents. It allows users to set rules or conditions that trigger specific formatting styles, such as colors, when certain criteria are met. For example, cells containing values above a certain threshold can be formatted with a green color, while cells with values below a threshold can be formatted with a red color. This visual highlighting helps users quickly identify and interpret data patterns, trends, and outliers within a spreadsheet or data table.
learn more about code here:
https://brainly.com/question/29677434
#SPJ11
Which two statements identify interactions among layers of hardware?
A. Logic gates are CPUs in monitors that transform data input from
printers into output data.
B. Hundreds of transistors work together as binary switches to
process data in a CPU.
C. Computer chips are connected to a motherboard and process
specific program instructions.
D. Data displayed on a monitor is read by a transistor.
Answer:
B & D
Explanation:
Hundreds of transistors work together as binary switches to
process data in a CPU.
Data displayed on a monitor is read by a transistor.
Uses 8 as its base
– Supports values from 0 to 7
• Octal digits can be represented with only three bits
• UNIX permissions
– Owner permissions (rwx)
– Group permissions (rwx)
– Other permissions (rwx)
• Setting permission (rwxrwxrwx) means they all have
read, write, and execute permissions
The base-8 number system is known as the "octal" number system. It uses eight digits to represent values from 0 to 7. Each octal digit can be represented using only three bits, which makes it useful in digital systems where space is at a premium.
One of the most common uses of octal numbers is in representing UNIX file permissions. In UNIX, files and directories have three sets of permissions: owner, group, and other. Each set consists of three permissions: read, write, and execute. These permissions can be represented using octal numbers, where each digit represents the sum of the permissions for that set. For example, the permission "rwxr-xr--" would be represented in octal as "755". The first digit represents the owner permissions (rwx), which add up to 7. The second digit represents the group permissions (r-x), which add up to 5. The third digit represents the other permissions (r--), which add up to 5.Using octal numbers to represent permissions makes it easy to set and manipulate permissions using simple arithmetic operations. For example, adding the octal number "2" to a permission digit will add the "write" permission, while adding the octal number "1" will add the "execute" permission.
Learn more about UNIX permissions here;
https://brainly.com/question/6990309
#SPJ11
What is one advantage of storing numeric data in variables?
O A. The program's code is easy to read if variables are used.
B. Images and words expressed through numbers can be stored in
variables.
OC. The programmer can go back and make changes to the data late
D. Variables can easily store both large and small numbers.
11. What is a default copy constructor?
A default copy constructor is a constructor that is automatically generated by the compiler if a class does not have its own copy constructor.
It creates a new object that is a copy of an existing object of the same class. The default copy constructor performs a member-wise copy, copying each member of the original object into the new object.
A default copy constructor is a special type of constructor in C++ code that creates a new object as a copy of an existing object. It's automatically generated by the compiler when no user-defined copy constructor is provided.
The default copy constructor performs a member-wise copy, meaning it copies each data member of the source object to the new object. 1. A class is defined without a user-defined copy constructor. 2. The compiler automatically generates a default copy constructor for the class.
3. The default copy constructor is called when an object is initialized with another object of the same class, or when an object is passed by value to a function. 4. The default copy constructor performs a member-wise copy, copying the values of all data members from the source object to the new object.
To know more about code click here
brainly.com/question/17293834
#SPJ11
What is one (efficient) way to format data on a sheet using color?
One efficient way to format data using color is to use conditional formatting. This allows you to automatically apply colors to cells based on specific criteria or rules.
such as highlighting cells with values above or below a certain threshold.
This not only helps to visually organize and highlight important data, but it can also quickly draw attention to any outliers or anomalies in your data set. Additionally, you can use color coding to create a legend or key that helps to explain the meaning behind each color used in your data set, making it easier for others to interpret and analyze your data. Overall, using color in data formatting can help to make your data more visually appealing and easier to understand.
learn more about data here:
https://brainly.com/question/27211396
#SPJ11
Please post detailed answers to the following questions. Please use complete sentences.
Phone apps to help you control different things seem to pop up every day with the promise to help make your life easier. Discuss the role that phone apps play in your life. What are some pros and cons of these apps? Describe an app that you would like to see developed that would make your life easier.
Phone apps have become a ubiquitous part of modern life, with millions of different apps available to help us control and manage various aspects of our lives.
What is the explanation for the above response?One of the main advantages of these apps is their convenience and ease of use - they allow us to accomplish tasks quickly and easily, often with just a few taps on our phone screen.
However, there are also potential drawbacks to relying too heavily on phone apps. For example, some apps may not be secure and could potentially compromise our personal information. Additionally, relying on apps too much could lead to a decrease in our ability to perform certain tasks without them, and may contribute to a sense of dependence on technology.
An app that I would like to see developed would be a personalized meal planning and grocery list app. This app would take into account any dietary restrictions, food preferences, and health goals and would generate a customized meal plan and corresponding grocery list. It would also allow users to easily track their food intake and monitor their progress towards their health goals. This app would save time and effort while promoting healthy eating habits.
Learn more about Phone apps at:
https://brainly.com/question/18466355
#SPJ1
An octet is equal to ____________________ bits, which equals one byte.
An octet is equal to Eight bits, or one byte, make up an octet. bits, which equals one byte.
In computing, an octet is a group of 8 bits that can stand in for a character or a number. An octet is made up of eight bits, each of which can only be either 0 or 1. Data is frequently represented in binary form in computers, which substitutes a base-2 number system for the base-10 number system commonly used in daily life. Digital information is measured in bytes, which are made up of eight bits. File sizes, storage capacities, and data transfer rates are all measured in bytes. A set of eight bits is referred to as a "octet" in networking and telecommunications.
learn more about octet here:
https://brainly.com/question/30908473
#SPJ11
What is the maximum data transfer rate supported by USB 2.0?
The maximum data transfer rate supported by USB 2.0 is 480 megabits per second (Mbps).
USB 2.0, also known as Hi-Speed USB, was introduced in 2000 and is a widely used interface for connecting various devices to computers. It has a maximum data transfer rate of 480 Mbps, which is equivalent to 60 megabytes per second (MB/s). This speed is much faster than the previous version, USB 1.1, which had a maximum data transfer rate of only 12 Mbps. However, it is slower than the newer USB 3.0, which has a maximum data transfer rate of 5 gigabits per second (Gbps) or 640 MB/s.
learn more about data here:
https://brainly.com/question/27211396
#SPJ11
An identifier is an attribute or a group of attributes whose value is associated with one and only one entity instance.True False
The given statement "An identifier is a unique attribute or a group of attributes that is associated with one and only one entity instance." is true because it is used to identify and distinguish the entity from other entities in the system.
In a database, an identifier is an attribute or a group of attributes that uniquely identifies a specific entity instance. An entity is a person, place, thing, or concept that is represented in the database. For example, in a database for a company, "Employee ID" could be an identifier that is assigned to each employee, and it would be associated with one and only one employee instance.
The purpose of an identifier is to ensure that each entity instance can be uniquely identified and differentiated from other instances in the database. This is important for maintaining data integrity and consistency, as it ensures that each entity can be accessed, updated, or deleted without affecting other entities or causing data inconsistencies.
Learn more about entity instance: https://brainly.com/question/30075900
#SPJ11
_______________ is a useful tool for the installation of multiple versions of macOS on many remote systems.
The Apple distant Desktop (ARD) programme is a helpful tool for installing different macOS versions on several distant devices.
Apple's Remote Desktop (ARD) is a powerful tool that allows system administrators to remotely manage multiple Mac systems. With ARD, it is possible to install multiple versions of macOS on remote systems, without physically accessing each system. This can be particularly useful for organizations that need to deploy a consistent software environment across multiple systems or for testing different versions of software on various macOS versions. ARD provides a centralized management console that allows administrators to perform various tasks on remote systems, including installing software, running scripts, and executing commands, all from a single location.
Learn more about ARD for Remote macOS Installations here.
https://brainly.com/question/29763206
#SPJ11
If a trench is 2 feet deep without any shoring, what can be done to bring it into compliance?
To bring a 2-foot deep trench into compliance without using shoring, you can follow proper safety guidelines such as maintaining a safe slope angle (1:1 or 45 degrees) to prevent the trench walls from collapsing. This will ensure the trench is stable and in compliance with safety regulations.
If a trench is 2 feet deep without any shoring, it is not in compliance with safety regulations. To bring it into compliance, shoring must be installed. Shoring is a method of supporting a trench or excavation to prevent collapse. It involves placing support systems such as steel beams, hydraulic shoring, or timber braces along the walls of the trench to prevent soil movement. Shoring should be installed by a qualified and experienced professional who is familiar with the specific requirements of the job site. By installing shoring, workers can safely enter and work in the trench without the risk of a collapse.
Learn more about excavation here-
https://brainly.com/question/14516755
#SPJ11
A computer that receives a SYN packet from a remote computer responds to the packet with a(n) ____ packet if its port is open.
a. FIN c. SYN/ACK
b. RST d. ACK
c. SYN/ACK. A computer that receives a SYN packet from a remote computer responds to the packet with a SYN/ACK packet if its port is open.
When a computer receives a SYN packet from a remote computer, it means that the remote computer is attempting to establish a TCP connection with the computer. If the port on the computer is open and available to receive data, the computer will respond with a SYN/ACK packet. This packet confirms that the computer received the SYN packet and is willing to establish a connection. The remote computer will then respond with an ACK packet to acknowledge the connection, and the two computers can start exchanging data. If the port is closed or unavailable, the computer will respond with a RST packet to indicate that it is not willing to establish a connection.
learn more about computer here:
https://brainly.com/question/30146762
#SPJ11
Why is port scanning considered legal by most security testers and hackers?
Port scanning is considered legal by most security testers and hackers because it involves only probing a network's defenses without exploiting them.
Port scanning is the process of examining a network to identify which ports are open or closed. Security testers and hackers use port scanning as a preliminary step to determine potential vulnerabilities in a system. While port scanning is not inherently malicious, it can be a precursor to more harmful activities, such as exploiting identified vulnerabilities. However, as long as the port scanner does not attempt to exploit any identified vulnerabilities and only probes the network's defences, it is considered legal. Additionally, many organizations use port scanning as a legitimate tool for monitoring and securing their own networks.
Learn more about Port scanning here:
https://brainly.com/question/31138991
#SPJ11
translate the following C code into Mips assuming that there is an array of 10 integers starting on the stack at 0($sp).int sum = 0;int i = 0;int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};while (i < 10) { sum += array[i]; i++; }
MIPS code for calculating the sum of an array of 10 integers starting on the stack at 0($sp):
# Initialize sum and i to 0
addi $t0, $zero, 0 # sum = 0
addi $t1, $zero, 0 # i = 0
# Load array address
addi $t2, $sp, 0 # t2 = address of array on stack
# Loop through the array
Loop:
# Check if i < 10
slti $t3, $t1, 10
beq $t3, $zero, Exit # Exit loop if i >= 10
# Load array[i] and add to sum
sll $t4, $t1, 2 # t4 = i * 4 (each integer is 4 bytes)
add $t4, $t4, $t2 # t4 = &array[i]
lw $t5, ($t4) # t5 = array[i]
add $t0, $t0, $t5 # sum += array[i]
# Increment i and continue loop
addi $t1, $t1, 1 # i++
j Loop
# Exit loop
Exit:
This MIPS code initializes the sum and i variables to 0, loads the address of the array on the stack and then enters a loop that iterates through the array. In each iteration of the loop, the code checks if i is less than 10, loads the value at the ith index of the array, add it to the sum variable, increments i by 1, and then continues to the next iteration of the loop. Once the loop has completed iterating through all 10 elements of the array, the code exits the loop and the sum variable contains the total sum of the array elements. The final result can then be stored or used as needed.
learn more about MIPS code here:
https://brainly.com/question/15578370
#SPJ11
The first expression appearing in the header of a for loop is the ____________, which usually assigns a starting value to a counter variable.
a. update expression
b. test expression
c. Boolean expression
d. initialization expression
The first expression appearing in the header of a for loop is the initialization expression, which usually assigns a starting value to a counter variable. Your answer is: d. initialization expression.
In computer programming, an initialization expression is an expression used to set the initial value of a variable or data structure. When a variable or data structure is declared, an initialization expression can be used to specify an initial value for that variable or data structure.
Initialization expressions can be used with a variety of data types, including integers, floating-point numbers, booleans, and strings, as well as more complex data structures such as arrays, structures, and classes. In some cases, initialization expressions may be optional, in which case the variable or data structure is initialized to a default value (e.g. 0 for integers).
To learn more about Loop Here:
https://brainly.com/question/13918592
#SPJ11
Analyze and eliminate the item that is NOT an example of a reconnaissance technique.A. Initial exploitationB. Open Source Intelligence (OSINT)C. Social engineeringD. Scanning
A. Initial exploitation . The item that is NOT an example of a reconnaissance technique is "Initial exploitation."
The practise of learning about a target system or organisation in order to find weak points or potential attack vectors is known as reconnaissance. A successful assault may then be planned and carried out using this knowledge. Reconnaissance methods include, but are not limited to, Open Source Intelligence (OSINT), Social engineering, and Scanning. Using web searches or social media surveillance, OSINT includes obtaining data that is already available to the public about the target. Social engineering is the practise of coercing employees to divulge confidential information or grant access to systems. Utilising automated technologies, scanning entails searching the target system for open ports, services, and vulnerabilities.On the other side, first exploitation is not a reconnaissance approach. Instead, it's a stage in the attack process when the attacker leverages the data obtained during reconnaissance to achieve first access to the target system or organisation.
learn more about Initial exploitation here:
https://brainly.com/question/16990662
#SPJ11
In data sheet view of the clientOrders table, set the font size of the data sheet to 12. -in home tab, click text formatting button-click font size arrow-change font to 12
By following these steps, you'll successfully set the font size of the data sheet to 12 in the client orders table's datasheet view.
To set the font size of the data sheet in the client orders table to 12, follow these steps:
1. Open the clientOrders table in Microsoft Access.
2. Switch to the datasheet view by clicking on the "View" button in the ribbon and selecting "Datasheet View."
3. Once in the datasheet view, go to the "Home" tab in the ribbon.
4. Locate the "Text Formatting" button in the "Font" group.
5. Click on the "Text Formatting" button.
6. In the drop-down menu that appears, click on the "Font Size" arrow.
7. Select "12" from the list of font sizes.
8. The font size of the data sheet in the client orders table will now be set to 12.
You can learn more about font size at: brainly.com/question/1176902
#SPJ11
you are setting up a network within a warehouse using category 5 utp. however, parts of the network are down because of the heavy machinery used. what is the most logical, least expensive solution?
The most logical, least expensive solution for network downtime caused by heavy machinery in a warehouse is to install industrial-grade.
The most logical, least expensive solution for network downtime caused by heavy machinery in a warehouse is to install industrial-grade, shielded category 5e or category 6 Ethernet cables., which provide better protection against electromagnetic interference (EMI) and radio frequency interference (RFI) caused by heavy machinery. Alternatively, you can also consider using fibre-optic cables, which are immune to EMI and RFI. However, fibre-optic cables are generally more expensive than copper cables. Another option is to relocate the network equipment away from the heavy machinery, but this may not always be feasible.
Learn more about fibre-optic here :
https://brainly.com/question/13082146
#SPJ11
Calculate the crude death rate for Leon County per 1,000 population (Report your answer with three decimal places).
The crude death rate for Leon County is 4.000 deaths per 1,000 population.
To calculate the crude death rate for Leon County, you need to divide the number of deaths by the total population and multiply by 1,000. Let's assume that there were 200 deaths in Leon County in the past year, and the total population is 50,000.
The formula for the crude death rate is:
Crude Death Rate = (Number of deaths / Total population) x 1,000
Plugging in the values, we get:
Crude Death Rate = (200 / 50,000) x 1,000
Crude Death Rate = 4.000 (rounded to three decimal places)
You can learn more about the death rate at: brainly.com/question/20337924
#SPJ11
Percy is configuring Advanced Audit Policy settings for Windows 10 clients in his organization.Which of the following event categories is Percy least likely to configure for these systems?
Advanced Audit Policy settings in Windows 10 allow for more granular control over the events that are audited on a system.
The event categories that are least likely to be configured will depend on the specific needs and security requirements of Percy's organization. However, it is possible that some of the less commonly audited event categories, such as Detailed Tracking or DS Access, may be less important for his organization and therefore may be less likely to be configured. Ultimately, the decision of which event categories to audit will depend on the organization's security policies and risk management strategy.
Learn more about Windows 10 here:
https://brainly.com/question/30778834
#sPJ11
34. Look at the following function prototype.int myFunction(double); What is the data type of the funtion's return value?a. intb. doublec. voidd. Can't tell from the prototype
the function prototype you provided: `int myFunction(double);` the data type of the function's return value is "a. int". The function, "myFunction", accepts a double as an argument and returns an integer value.
In computer science, data type refers to the different categories of data that can be stored, processed, and manipulated by a computer program. Each data type has a specific set of rules and operations associated with it. Common data types include integers, which represent whole numbers; floating-point numbers, which represent decimals; characters, which represent letters, symbols, and punctuation; and Boolean values, which represent true/false or on/off conditions. More complex data types include arrays, structures, and classes.
Data types are important for ensuring the accuracy and consistency of data, and for optimizing program performance. Choosing the appropriate data type for a given task can help reduce memory usage and improve processing speed. Data types can also affect how data is displayed to users and how it can be stored and retrieved from databases.
Learn more about data type here:
https://brainly.com/question/18033010
#SPJ11
What is information security policy? Why it is critical to the success of the information security program?
An information security policy is a set of rules and guidelines that govern the protection of sensitive data within an organization.
What is the explanation for the above response?It defines the expectations, responsibilities, and requirements for employees, contractors, and third-party partners regarding the protection of information assets.
Information security policy is critical to the success of an information security program because it provides a framework for addressing risks and protecting sensitive data. It helps to ensure consistency in security practices, establish accountability for protecting data, and guide decision-making regarding the allocation of resources to protect information assets.
Without a well-defined information security policy, an organization may struggle to effectively protect its sensitive data, leaving it vulnerable to cyber-attacks, data breaches, and other security incidents.
Learn more about information security policy at:
https://brainly.com/question/14618107
#SPJ1
What can an attacker see on the target system?
What can an intruder do with that information?
Are the attackers' attempts being noticed on the target systems?
An attacker can access sensitive information on a target system and use it to gain unauthorized access, steal data, install malware, or disrupt operations. The effectiveness of security measures determines if attempts are noticed.
An attacker who gains access to a target system can see and collect a wide range of information, including network traffic, system settings, and sensitive data. This information can be used to gain further unauthorized access to the system, steal data, install malware, and disrupt system operations. Attackers may attempt to escalate their privileges, install ransomware, or exfiltrate sensitive data. Whether their attempts are noticed on the target system depends on the effectiveness of the system's security measures and the attacker's level of sophistication. Organizations should implement robust security measures to detect and prevent unauthorized access, as well as monitor their systems for suspicious activity to prevent or mitigate the impact of a successful attack.
learn more about steal data here:
https://brainly.com/question/31107401
#SPJ11
Uses an RF transmitter.. May include such features as motion detection, scheduled recording, remote viewing, and automatic cloud storage?
Yes, a device that uses an RF transmitter may include features such as motion detection, scheduled recording, remote viewing, and automatic cloud storage. These features can enhance the functionality of the device and make it more convenient for users to monitor their surroundings.
Motion detection allows the device to detect movement and trigger a recording, while scheduled recording enables users to set specific times for the device to record. Remote viewing allows users to access the recordings from a remote location, and automatic cloud storage ensures that the recordings are securely saved in the cloud for easy access and retrieval.
A radio frequency (RF) transmitter is a device that generates and sends electromagnetic waves at a specific frequency. These waves carry information such as audio, video, or data and can travel through the air or space to a receiver.
RF transmitters are commonly used in communication systems, such as wireless networks, radio and television broadcasting, mobile phones, and satellite communications. They consist of several components, including an oscillator to generate the signal, an amplifier to boost the signal strength, and an antenna to transmit the signal.
To learn more about Transmitter Here:
https://brainly.com/question/13484442
#SPJ11
You are helping a person with a visual disability purchase a computer. Which hardware device is needed to enable voice-to-text software?
A. a printer
B. a special keyboard
C. a microphone
D. a speaker