Mobile and Ubiquitous Computing Flashcards

1
Q

What are the five layers in Android Platform Architecture from bottom to top?

A

Linux Kernel
Hardware abstraction layer
Native C/C++ libraries & Android Runtime
Java API framework
System apps

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What does the linux kernel contain?

A

Hardware drivers, security, process and memory management,
File and Network I/O,
Power Management, Binder (Inter-Process Communication)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What does the hardware abstraction layer do?

A

Provides standard interfaces that expose device hardware capabilities to the Java API framework, bridging the gap between the linux kernel and hardware.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the native C/C++ Libraries?

A

Pre-compiled libraries optimized for performance and used for low-level system operations. Includes Webkit (Browser engine), Media Framework (Video/Audio), OpenGL (Graphics Engine), SQLite (Relational Database engine).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is Android Runtime?

A

Android Runtime is an application runtime environment used by the Android OS. Contains core libraries such as Basic Java Classes, App Lifecycle, Internet/Web Services and Unit Testing. Java Code is converted to Java bytecode, which is converted to DEX bytecode, which is the input to ART.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the Java API Framework?

A

A collection of Java classes and interfaces that define the functionality available to Android applications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are five features of the the Java API Frameworks and what do they do?

A

View System - Builds an application’s UI.
Content Provider - Enables applications to access data from other applications.
Resource Manager - Provides access to non-code resources such as graphics.
Notification Manager - Enables all applications to display customer alerts in the status bar.
Activity Manager - Manages the lifecycle of apps and provides a common navigation backstack.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is application part of the android platform architecture?

A

A set of core apps that come pre installed with android such as an email client, maps and a browser.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is an activity?

A

An activity provides the window in which the app draws its UI. It is the entry point for an app’s interaction with the user. One activity implements one screen and most apps have several activities. Each activity must be registered in the manifest, and as a subclass of the base Activity class.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is a service?

A

A service runs in the background and performs long running operations. It allows different processes to share data and request operations.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are Broadcast Receivers?

A

Broadcast Receivers are a component of the android system that allow apps to listen and respond to an event. For example system broadcasts and customized broadcasts.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are Content Providers?

A

A way for an app to access data and to share data with other apps. Provides an interface between an app and its data storage.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is the android manifest?

A

The Android Manifest. is an XML file that serves as a blueprint for the Android application. It provides essential information about the app to the Android system, such as its package name, version, permissions, components, and configuration details.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What happens when an activity is launched?

A

It goes to onCreate()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What happens after onCreate()?

A

onStart()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What happens after onStart()?

A

onResume()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What happens after onResume()?

A

The activity runs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What happens on onPause()?

A

Either the App Process is killed, it resumes with onResume(), or it goes to onStop()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What happens on onStop()?

A

Either the App Process is killed, it restarts with onRestart(), or it it goes on to onDestroy()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What happens on onDestroy()?

A

The activity is shut down

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

How is an activity restarted after the App Process is killed?

A

onCreate()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What is onCreate()?

A

Called when activity is created. Initializes the activity and carries out the functions super.onCreate(), set content view, retain references to views, configure views.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What is onStart()?

A

Called when the activity is about to become visible. Typically starts up visible only behaviours and loads persistent app state.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is onResume()?

A

Called when the activity is visible and about to start interacting, will usually start foreground only behaviors.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What is onRestart()?
Called when Activity is stopped but about to be started again, and needs to handle any special processing needed.
26
What is onPause()?
When you are about to switch to another activity. Shuts down foreground only behaviour and saves persistent app state.
27
What is onStop?
When the activity is no longer visible, it will usually cache activity state. May not be called if Android kills app.
28
What is onDestroy()?
When it is about to be destroyed and it releases activity resources. May not be called if android kills app.
29
How do you start a new activity from an initial activity?
Context context = FirstActivity.this; Class destinationActivity = SecondActivity.class; Intent intent = new Intent (context, destinationActivity); startActivity(intent);
30
How can you send data from one activity to another using Intent data?
Add the data (URI) to the intent. For example: Uri webpage = Uri.parse("http://www.exeter.ac.uk"); intent.setData(webpage);
31
How can you send data from one activity to another using Intent Extras and putExtra()?
Determine the key for information, then use the putExtra() methods to add pairs.
32
How can you send data from one activity to another using Intent Extras and bundles?
Create a bundle then use putString() to add the key and value to the bundle. Then use putExtra(bundle) on the intent.
33
How do you receive data from another activity sent with an intent with data?
getIntent() to retrieve the intent. Then intent.getData() to get the data from the intent
34
How do you receive data from another activity sent with an intent with an extra?
getIntent() to retrieve the intent. Then intent.get**Extra() to get extra data out of the intent. For example getStringExtra for a string.
35
How do you receive data from another activity sent with an intent with a bundle of extras?
getIntent() to retrieve the intent. Then intent.getExtra() to get bundle out of the intent. Then bundle.getString() if it is a string.
36
How do you launch an activity to get a response from it?
Firstly call startActivityForResult(Intent intent, int requestCode) to call the activity. Then add data to an intent in the second activity, and use setResult(int resultCode, Intent data) to set the result, and finish() to finish the activity. Finally on the first activity, Override the onActivityResult(int requestCode, int resultCode, Intent data) method, check if resultCode = RESULT_OK, then process the data.
37
What is explicit intent?
An Intent that explicitly specifies the target component (e.g., activity, service) to be invoked. Usually used to call other activities.
38
What is implicit intent?
An Intent that does not specify the target component (e.g., activity, service) explicitly but describes the action to be performed. Used for activating components that can handle a particular action, such as opening a web page, sending an email, or sharing content.
39
What is the use of intent field named action?
Specifies the generic action the receiving activity should perform.
40
What is the use of the intent field named category?
Specifies the category of component that should handle the intent.
41
What is the use of the intent field named type?
It indicates the MIME type of the intent data (e.g., image/png, image/jpeg, text/html, text/plain). If you don’t specify a MIME type, Android will infer one.
42
What is the use of the intent field named flag?
It specifies how the intent should be handled
43
How do you create and resolve an implicit intent?
To create, create an an intent with an action string. Then set any fields such as extras or type. Then use resolve activity to make sure that the system packet manager has a match for the intent, and start the activity if it does.
44
How can you handle more than one app being able to handle an intent?
Create a selection or chooser dialogue, and start the activity through that.
45
How can an activity receive an implicit intent?
By putting intent filters in the android manifest, which then are compared with the intent fields to see if they are compatible. If they are it gets the intent, gets the data/extras, performs the task, and may return data.
46
What does the intent filter mean?
It describes which actions an activity can perform.
47
What does the intent filter mean?
It describes which data types that the activity can handle.
48
What is a view?
The view class is a basic building block and superclass for UI components. It occupies a rectangular space on screen and has a location and dimension. There are lots of predefined views such as TextView, ImageView, ScrollView and RecyclerView.
49
What is a viewgroup?
ViewGroups are special types of Views that act as containers for other Views. They organize and manage the layout of child Views within them.
50
What is a layout?
A layout is a type of viewgroup that dictates the arrangement and organization of UI elements within an Activity or Fragment. They can be declared in XML or instantiated at runtime.
51
What is a relative layout?
A RelativeLayout is a type of ViewGroup in Android that arranges its child Views relative to one another or to the parent container.
52
What is a constraint layout?
A ConstraintLayout is a type of ViewGroup that allows the creation of flexible and dynamic layouts using a system of constraints to define the position and alignment of UI elements relative to each other and to the parent container.
53
What is an AdapterView and how does it work?
An AdapterView in Android displays a list of data items. It works by connecting data to views using an adapter, and populating on runtime. It can also handle user selections with OnItemClickListener.
54
What is ListView?
A subclass of AdapterView that has vertical scroll, horizontal row entries, and pick item.
55
What is GridView?
A subclass of AdapterView that displays a list of scrollable items with specifies number of rows and columns
56
What is a linear layout?
A linear layout arranges its child Views in a single direction, either horizontally or vertically. This is often used when views need to be organized in a linear fashion.
57
What advantages does RecyclerView have over ListView?
- It supports vertical, horizontal, and grid layouts instead of only vertical. - It has more efficient view recycling and memory management. - It is more optimized for large and dynamic data sets, which improves performance. - Allows for dynamic data changes with notifications for item insertion and removal. - Built in support for custom decorations and animations. Easier to create complex item views and layouts.
58
What is the principle behind RecyclerView?
Items off screen are kept in a queue for reuse. The list items are binded with new content that can be scrolled in. Items that are scrolled out are added back into the queue.
59
What are the four components of RecyclerView and what do thet do?
Layout Manager: Manages the arrangement of items within the RecyclerView. RecyclerView: The scrolling list that contains the list items. Adapter: Binds data to the RecyclerView. Contains the ViewHolder which contains the view information for displaying one list item. Data: Local data, a database or remote data.
60
What is a ViewHolder?
It describes an item view and metadata about its place. The adapter adds data to view holders. The layout is defined in xml and can contain any kind of view. It minimizes the number of views kept around and the number of views to be created when scrolling by creating more views than screen capacity, and caching and reusing views with different data as they scroll in and out.
61
Why are ViewHolders used?
It doesn't need to use findViewById(), as it is better to cache the views in a view holder. Therefore you can access those views later without having to repeatedly make findViewById() calls. When it scrolls the view holders will be reused and the adapter will bind new data to them.
62
How do you implement a recycler view?
FIrstly add RecyclerView to the gradle file. Create an XML layout file for the individual items in the list/grid. Define a ViewHolder class that extends RecyclerView.ViewHolder. Create an adapter class that extends RecyclerView.Adapter, and override onCreateViewHolder() to inflate item layouts, onBindViewHolder() to bind data to views, and getItemCount() to return the number of items in the dataset. In the main activity give the RecyclerView a LayoutManager, instantiate the adapter and set it on the RecyclerView using setAdapter().
63
How are fragments modular?
Composing an Activity from several fragments offers flexibility, you can re-use fragments, and they usually have a UI.
64
How does the fragments lifecycle connect to the activity?
A fragment has its own lifecycle and receives its own events but is also tied to its parent activity lifecycle.
65
What are the three fragment lifecycle states and what do they mean?
Resumed: Fragment is visible in the containing activity. Paused: Another activity is in the foreground (the containing activity is in the background). Stopped: Fragment is not visible.
66
When is onAttach in the fragment lifecycle called, and what does it do?
Called when the fragment is attached to its host activity, preceded by instantiation of the Fragment and followed by onCreate(). This method establishes a connection to the parent activity.
67
When is onCreate in the fragment lifecycle called, and what does it do?
Invoked when the fragment is being created, preceded by onAttach() and followed by onCreateView(). Initialization tasks such as setting up variables and resources are performed here.
68
When is onCreateView in the fragment lifecycle called and what does it do?
Responsible for creating the fragment's view hierarchy, preceded by onCreate() and followed by onViewCreated(). Inflate the layout XML or create views programmatically within this method
69
When is onViewCreated in the fragment lifecycle called and what does it do?
Called after onCreateView(), indicating that the view hierarchy has been created, preceded by onCreateView() and followed by onStart(). Initialize UI elements and bind data to views here.
70
When is onStart in the fragment lifecycle called and what does it do?
Called when the fragment becomes visible to the user, preceded by onViewCreated() and followed by onResume(). Perform initialization tasks here when the fragment becomes visible.
71
When is onResume in the fragment lifecycle called and what does it do?
Invoked when the fragment is visible and interactive to the user, preceded by onStart() and followed by onPause(). Set up UI updates, animations, and event listeners here.
72
When is onPause in the fragment lifecycle called and what does it do?
Called when the fragment is about to be paused or stopped, preceded by onResume() and followed by onStop(). Pause ongoing operations here.
73
When is onStop in the fragment lifecycle called and what does it do?
Invoked when the fragment is no longer visible to the user, preceded by onPause() and followed by onDestroyView(). Perform cleanup tasks and release resources here.
74
When is onDestroyView in the fragment lifecycle called and what does it do?
Called when the fragment's view hierarchy is being destroyed, preceded by onStop() and followed by onDestroy(). Perform cleanup related to views here.
75
When is onDestroy in the fragment lifecycle called and what does it do?
Invoked when the fragment is being destroyed, preceded by onDestroyView() and followed by onDetach(). Release resources and unregister listeners here.
76
When is onDetach in the fragment lifecycle called and what does it do?
Called when the fragment is detached from its host activity, preceded by onDestroy() and followed by the Fragment being destroyed. Release any references to the activity here.
77
What are the differences between an options menu and a context menu?
The options menu is the primary collection of menu items for an activity, where settings and search should be. Meanwhile a context menu is a floating menu that appears on a long click that provides actions that affect the selected content or context.
78
How do you create an options menu?
Firstly create the options menu in the xml file, then override the onCreateOptionsMenu() method to inflate the menu resource file and display the menu in the action bar. Then override the onOptionsItemSelected() method to handle menu item selection events. Perform actions based on the selected menu item's ID.
79
How do you create an context menu?
Firstly create the options menu in the xml file, then register the view that will trigger the context using registerForContextMenu(), inflate the menu resource using onCreateContextMenu, then handle the selection using onContextItemSelected.
80
What are the four types of storage?
Lightweight Storage, File Storage, Database and Network
81
What are the two types of Lightweight storage?
SharedPreferences - Store private, primitive data sets in key-value pairs, like user preferences. DataStore - The modern substitute for SharedPreferences with better performance and safety.
82
What are the two types of file storage?
Internal storage - Store sensitive, private data on the device's built in storage within the app's context. Files are removed when the app is uninstalled. External storage - Private to an app and deleted when the app is uninstalled or public and accessible to other apps. requires read and write to external storage permissions.
83
What are the two types of database?
SQLite Database - Store structured data in a private database. A small, fast, self-contained, high reliability database engine. Room Database - An abstraction over SQLite for simplified management and queries.
84
How does cloud storage work?
Allows for apps to store data on remote servers, enabling access across devices and platforms. Ideal for data synchronisation, backup, or dealing with large data.
85
What are the advantages of SharedPreference over SavedInstanceState?
Persists across user sessions instead of just in the same session. This means that data is remembered across sessions and you can store user preferences.
86
What are the three levels of preferences?
There is getPreferences for activity specific preferences, getSharedPreferences for application level preferences, and getDefaultSharedPreferences for system wide preferences.
87
How do you implement sharedPreferences?
Get the preferences you want (activity, application or device), then do .edit(), and .put**(key, value) such as .putInt. then call .commit().
88
How do you retrieve from sharedPreferences?
Get the preferences you want (activity, application or device), then do .get**(key) to get the value. .getAll() returns all key-value pairs.
89
What are the limitations of sharedPreferences?
Main Thread Blocking - SharedPreferences' synchronous API can block that main thread during I/O operations leading to UI performance issues. Multi-Process Use - It is not designed for use in multi-process applications and could lead to data inconsistency. Lack of Transaction Support - Changes are committed immediately and cannot be rolled back if there is an failure partway.
90
What advantages does DataStore have over SharedPreferences?
DataStore has asynchronous data handling, and concurrency support.
91
What are the differences between Preference DataStore and Proto DataStore?
Preferences is similar to SharedPreferences with key-value pairs and is used for small datasets such as preferences. Proto uses Type objects and has Type safety so can store more complex data that doesn't fit into key-value pairs, but is more complicated to set up.
92
How do you implement preferences datastore?
Create a DataStore instance, to save data you can use the .edit method inside a sav(), and to retrieve data you can use read().
93
What makes computing mobile?
Computing while location changes.
94
What makes computing ubiquitous?
When the computing is performed in accordance with the context. This usually involves a lot of sensing.
95
Why is mobile ubiquitous computing volatile?
Because of the incremental and continuous change in the ubiquitous environment over time. For example variation between different technologies and disconnections.
96
What is Throughput?
Throughput is a measure of how many units of information a system can process in a given amount of time. A rather general definition can be the amount of work done per unit time.
97
What is Network Bandwidth?
Network bandwidth is a measure of the data transfer rate or capacity of a given network. Network bandwidth is commonly measured in bits per second (bps).
98
What is Network Latency?
Network latency is the delay in network communication. It shows the time that data takes to transfer across the network. Networks with a longer delay or lag have high latency, while those with fast response times have low latency
99
What is the definition of RFID?
Radio Frequency Identification (RFID) is a form of wireless communication that incorporates the use of electromagnetic or electrostatic coupling in the radio frequency portion of the electromagnetic spectrum to uniquely identify an object (carrying an RFID tag)
100
What are the two types of RFID?
Passive which do not have their own power source and use power from the reader, and Active which have their own power source.
101
What are the three implementations of RFID?
Ultra High Frequency (200MHz to 3GHz, 1-12m); High Frequency (3-30MHz, 1m or less); Low High Frequency (30-300kHz, 10cm).
102
What is RFID typically used for?
Automatic identification and Data capture. For example payment systems, and access control to restricted areas.
103
What is the definition of WPAN (Wireless Personal Area Network)?
A Wireless Personal Area Network (WPAN) interconnects technology devices, wirelessly, typically within the range of a single user (human/machine), Small Office or Home Office (SOHO) environment, or workgroup. The most common use is bluetooth.
104
What are the characteristics of WPAN?
- Short range (around 10m) - Low energy/power consumption (100 mW to 1W) - Low data rate (1-3Mbps) - Low latency (around 40ms)
105
What are the key features of Bluetooth?
Bluetooth is a WPAN. Has low power consumption, short range, low latency, and omni-directional communications.
106
What is the definition of WLAN (Wireless Local Area Network)?
A Wireless Local Area Network (WLAN) interconnects technology devices, wirelessly, typically within the range of a multiple users. It is still a small network of devices, but offers more range and connectivity.
107
What are the characteristics of WLAN?
- Access range usually within a single building - High data transmission rates - Moderate latency - Low cost installation and services.
108
What are the key features of Wi Fi?
Has around 100m access range, 145-1103mW power consumption, bandwidth of around 54Mbps, 20-100ms latency.
109
What is the definition of WNAN (Wireless Neighborhood Area Network)?
A Wireless Neighborhood/Metropolitan Area Network (WNAN/WMAN) interconnects technology devices, wirelessly, typically within a larger range of a multiple users.
110
What are the characteristics of WNAN?
- Large access range of over 50km - Higher power consumption - High data transmission rates - Moderate latency - Works by line-of-sight, and non-line-of-sight.
111
What are the key features of WiMAX?
- Access range of over 50km - 6 to 17W per user power consumption - Latency of around 1ms - 2 operating bands
112
What is the definition of WWAN (Wireless Wide Area Network)?
Perform over large areas over 50km, typically use licensed frequency bands, and can be maintained over large areas, such as over cities or countries, via multiple satellite or antenna sites.
113
What are the characteristics of WWAN?
Very big access range of over 50km, moderate to high energy consumption, moderate bandwidth, but high latency.
114
What are the key features of cellular networkks?
Implemented using satellites. Coverage area is divided into cells, with a cell transmitter node in the middle. All cell transmitters connect to a base station, which then connects to a mobile telecom switch to link cellular and wired telephone network.
115
What did all the new cellular generations introduce?
1G: voice calls, 2.4Kbps 2G: texts, 64Kbps 3G: 2Mbps 4G: Up to 1Gbps 5G: 10Gbps, up to 1ms latency
116
What are the best and worst wireless technologies for high coverage/range?
Best: Cellular Worst: RFID
117
What are the best and worst wireless technologies for low power consumption?
Best: RFIDs Worst: Cellular
118
What are the best and worst wireless technologies for high bandwidth?
Best: WiFi Worst: RFIDs
119
What are the best and worst wireless technologies for low latency?
Best: Bluetooth Worst: Cellular
120
What is a content provider?
A content provider is a way for other apps to access data storage in your app without having to access the storage directly.
121
How do you get content from a content provider?
Firstly get permissions to access the app. Create an instance of a content resolver using getContentResolver(). Then call Cursor = resolver.query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder), getting the uri from the contract class. Then you need to get the information from the cursor
122
What is a contract class?
Stores all the URIs of the content provider of an app. This exposes information about it's content provider to other apps.
123
How do you create a content provider?
Create a class that extends from the ContentProvider, and register it in the manifest. Create URI's and add them to the contract class. Use the UriMatcher class to match URIs to specific operations and tables within the content provider. On create initialize the content provider. Add the insert, query, update and delete functions. Add getType to return the MIME type of the content.
124
What is the definition of an embedded system?
Computing systems designed to perform specific functions within a larger system, typically with real-time constraints and resource limitations.
125
What are the Characteristics of Embedded Hardware?
Domain-specific: Tailored to serve a specific domain. Energy-efficient: prioritized over raw performance. Power constraints: May have cooling requirements or power supply limits. Cost: Balance cost of production, and cost of design. Programmability: Flexible or not for reprogrammability once manufactured. Design complexity: Different complexities depending on requirements.
126
What are the Characteristics of Embedded Software?
Real-time: Timing constraints set by physical environment. Reactive: Response to physical environment. Concurrency: Physical environment in not sequential. Dependability: Impact on physical environment. Reliability: Fixing bugs may be hard once deployed. Efficiency: Manual optimisation required. Lack of abstraction: Exposure of underlying hardware to programmer.
127
What are real time embedded systems?
A special class of embedded systems, distinguished from the rest of Embedded Systems by its requirement to respond to external events in timely manner. Temporal correctness is as important as logical correctness.
128
What are HARD Real time embedded systems?
Where completion of a logically correct operation after its deadline is unacceptable. Operation may cause a critical failure in system and expose end users to hazardous situations. For example in planes on power plants.
129
What are SOFT Real time embedded systems?
Lower strictness as compared to hard real-time systems. Violation of timing constraints does not make produced logically correct outputs useless or hazardous. System can continue to operate even if deadlines of most operations are missing. Consequences of missing deadline smaller than cost of meeting them. Cellular phones are an example.
130
What are FIRM Real time embedded systems?
An intermediate between hard and soft real time systems. Only a predefined ratio of deadline miss is allowed.
131
What are the high level challenges of embedded system design?
How much Hardware, How to meet deadlines, How to minimize power, Multi-objective optimisation in a vast space.
132
What are the five design steps for an embedded system?
Requirements Analysis System Specifications Architecture Definition Components System Integration
133
What is done in the requirement analysis stage of embedded system design?
Functional requirements: Output as a function of input Non-Functional requirements: Time to compute, size, weight, power consumption, reliability.
134
What is done in the system specification stage of embedded system design?
What should the system include, often done using UML
135
What is done in the system integration stage of embedded system design?
Everything is put together, and functional and nonfunctional testing.
136
What are common design practices nowadays in embedded systems?
Reuse in design, using pre designed hardware module. Platform based design that focuses on IP-centric design and reuse.
137
What is edge computing?
Edge computing is a distributed IT architecture in which client data is processed at the periphery of the network, as close to the originating source as possible.
138
What is cloud computing?
Huge, highly scalable deployment of compute and storage resources at one of several distributes locations.
139
What is fog computing?
Puts compute and storage resources 'within' the vicinity of data but not necessarily at the data source. Used when edge deployment might be too resource limited.
140
What is Task Offloading?
The transfer of resource-intensive computational tasks to an external platform such as Cloud, Fog or Edge Computing. Taskas may be split into local and offloaded computation and are combined at the end. Advantages of this include boosted performance, and battery lifetime.
141
What is Service Migration?
Service Migration ties to find the best possible way to migrate services between edge services, taking into account the task size, user's mobile needs and existing workload.
142
What is Edge Caching?
Edge caching stores popular content closer to the user on the edge server. This reduces latency as it is quicker to retrieve. ML/AI can be used to determine which content gets cached.
143
What are the challenges of Edge Caching?
Limited caching capacity, not all content can be cached. User position and requests dynamically change.
144
What is Software Security?
Protecting against System and Application software issues which can cause security threats. For example lack of encryption, bad code re use or lack of testing.
145
What is Hardware Security?
Hardware security involves protecting processing, storage, I/O, and peripheral devices from threats. This includes ensuring a trusted execution environment, addressing memory-level security, access vulnerabilities, and timing issues. Measures such as authentication and privacy preservation are crucial for safeguarding against malware and covert channels.
146
What is Cloud, Fog and Edge Security?
Protecting against attacks on cloud fog and edge computing. For example DoS attacks, cloud malware injection and side and covert channels.
147
What is availability?
Accessibility of data when the user or system need it. Assets are accessible to authorized parties at appropriate times.
148
What is integrity?
Integrity means data is trustworthy, complete, and has not been accidentally or deliberately altered by an unauthorized user
149
What is Confidentiality?
Confidentiality refers to protecting information from unauthorized access.
150
What is Accountability?
Accountability refers to the traceability of actions by various authorized users. Actions are recorded and can be traced to the party responsible.
151
What is Authentication?
Authentication refers to the ability to accurately identify the user or origin of data being produced.
152
What is an Adversary?
An entity that attacks, or is a threat to, a system.
153
What is an Asset/System Resource?
Data, a service provided by a system, a system capability, an item of system equipment, a facility that houses system operations and equipment.
154
What is Risk?
An expectation of loss expressed as the probability that a particular threat will exploit a particular vulnerability with a particular harmful result.
155
What is Vulnarability?
Flaw or weakness in a system's design, implementation, or operation and management that could be exploited to violate the system's security policy.
156
What is Threat?
Capability to exploit any of the vulnerabilities. A potential for violation of security, which exists when there is a circumstance, capability, action, or event that could breach security and cause harm.
157
What is an Attack?
A threat being carried out. An assault on system security that derives from an intelligent threat; a deliberate attempt to evade security services and violate security policy of a system.
158
What is a Countermeasure?
An action, device, procedure, or technique that reduces a threat, a vulnerability, or an attack by eliminating or preventing it, by minimizing the harm it can cause, or by discovering and reporting it so that corrective action can be taken.
159
What is an Interception attack?
Where a malicious actor can access confidential information without authorization. For example eavesdropping attacks.
160
What are Modification attacks?
Where an attacker intercepts communication between sender and receiver and tampers with information. This is a threat to integrity.
161
What are Fabrication attacks?
Where an intruder injects false data or creates a false trail into a system. This affects data integrity.
162
What are Interruption Attacks?
o Interruption attacks are any situation where an attacker cause information/data to become unavailable or unusable for the receiver on a temporary or permanent basis. For example DoS or virus/trojans.
163
What are Side Channel Attacks?
Where an attacker uses leakage of information from physical and logical parameters of main computation function. For example timing attacks, power attacks, electromagnetic attacks.
164
What are Covert-Channel Attacks?
Covert-Channel attacks are any situation where an attacker creates a capability to transfer information/data between any processes that are not supposed to be allowed to communicate with each other.
165
How can Cache feature be exploited?
Attackers use access latency to observe cache state, they can use mapping to derive the main memory access behavior via cache accesses, and can use cache conflicts to capture the cache accesses of the victim.
166
What is a Flush and Reload attack?
A flush and reload attack is a side-channel attack that exploits CPU caching mechanisms to leak sensitive information. By repeatedly flushing cache lines and measuring the time it takes to reload them, attackers can infer which memory addresses were accessed by a victim process, potentially revealing cryptographic keys or other sensitive data
167
What are the encryption and decryption functions of RSA, and what would an attacker try find?
m^e mod n and c^d mod n. The attacker would want to find d.
168
What is the ML Workflow?
Data Collection & Labelling System Design and Learning Performance Evaluation Deployment and Operation
169
What is Data Collection and Labelling in AI/ML and what are the issues?
Getting a dataset and creating labels. Unrealistic data can lead to a misestimation of an approaches capabilities, which is called sampling bias. There is also label inaccuracy which is when the labels are inaccurate, unstable, or erroneous.
170
What is System Design and Learning in AI/ML and what are the issues?
Data is pre-processed to extract meaningful features and building an effective learning model. Issues are that the learning model may pick up spurious correlations, and have biased parameter selection.
171
What is Performance Evaluation in AI/ML and what are the issues?
An evaluation of the system's performance. The issues are that you can get unfair comparisons and biased results in the evaluation. For example a large class imbalance can lead to an overestimation of performance as it will more frequently guess that class.
172
What is Deployment and Operation in AI/ML and what are the issues?
Deployment of the machine learning based solution. Issues can occur when it has only been evaluated in a laboratory setting, and the security has not been considered.
173
How can AI/ML be used in networking?
Incorporating ML tools into a network can help predict traffic flows, generate smarter analytics, monitor network health, tighten security measures and more.
174
How can AI/ML be used in Cloud, Fog, and Edge Computing?
AI/ML optimizes Cloud, Fog, and Edge Computing by automating resource management, enabling real-time analytics, and enhancing decision-making for IoT devices, reducing latency and improving efficiency.