Sei sulla pagina 1di 45

1

ER/CORP/CRS/OS94 ER/CORP/CRS/OS94 Ver. No.: 1.0 Ver. No.: 1.0 Copyright 2008, Infosys Technologies Ltd. Copyright 2008, Infosys Technologies Ltd.
Education and Research
We enable you to leverage knowledge anytime, anywhere!
Confidential Confidential
I
n
f
o
s
y
s
Operating System Concepts
Operating System Concepts
Part 3
Part 3
Welcome to this course on Operating System Concepts- Part 3
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential
General Guideline
General Guideline
(2008) Infosys Technologies Ltd.
This document contains valuable confidential and proprietary information of Infosys.
Such confidential and proprietary information includes, amongst others, proprietary
intellectual property which can be legally protected and commercialized. Such
information is furnished herein for training purposes only. Except with the express
prior written permission of Infosys, this document and the information contained
herein may not be published, Disclosed, or used for any other purpose.
2 2
2
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential
Confidential Information
Confidential Information
This Document is confidential to Infosys Technologies Limited. This document
contains information and data that Infosys considers confidential and
proprietary (Confidential Information).
Confidential Information includes, but is not limited to, the following:
Corporate and Infrastructure information about Infosys
Infosys project management and quality processes
Project experiences provided included as illustrative case studies
Any Disclosures of Confidential Information to, or use of it by a third party, will
be damaging to Infosys.
Ownership of all Infosys Confidential Information, no matter in what media it
resides, remains with Infosys.
Confidential information in this document shall not be Disclosed, duplicated or
used in whole or in part for any purpose other than reading without specific
written permission of an authorized representative of Infosys.
This document also contains third party confidential and proprietary
information. Such third party information has been included by Infosys after
receiving due written permissions and authorizations from the party/ies. Such
third party confidential and proprietary information shall not be Disclosed,
duplicated or used in whole or in part for any purpose other than reading
without specific written permission of an authorized representative of Infosys.
3 3
3
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential
Recap - Part 2
Recap - Part 2
Process Management
Process Scheduling
Preemptive scheduling
Non Pre-emptive scheduling
Threads
Interprocess Communication
Concurrency
Critical Section problem
Mutual Exclusion
4 4
5
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 5 5
Session Plan Part 3
Session Plan Part 3
Deadlocks
Necessary Conditions
Deadlock Handling
Recovery
File System Management
Introduction
Windows File System(NTFS)
Comparison of NTFS , MSDOS and UNIX File System
Device Management
I/O channels, Interrupts and Interrupt Handling
Structure of an I/O System
Disk Scheduling
6
ER/CORP/CRS/OS94 ER/CORP/CRS/OS94 Ver. No.: 1.0 Ver. No.: 1.0 Copyright 2008, Infosys Technologies Ltd. Copyright 2008, Infosys Technologies Ltd.
Education and Research
We enable you to leverage knowledge anytime, anywhere!
Confidential Confidential
I
n
f
o
s
y
s
Deadlock
Deadlock
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 7 7
R1
P1
R2
P2
R3
P3
Process P1 holds resource R1 and requests resource R2
If P3 will request for resource R1 then What will happen?
Deadlock Scenario
D
E
A
D
L
O
C
K
!
Process P3 holds resource R3
Process P2 holds resource R2 and requests resource R3
7
8
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 8 8
Formal definition:
A set of processes (P1,P2,,Pn) is said to be
deadlocked if each process in the set is
waiting for an event that can only be caused
by another process in that set
Typically, the event is releasing of a resource by
a process
Deadlock
Deadlock
9
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 9 9
Necessary Conditions for Deadlock
Necessary Conditions for Deadlock
Mutual Exclusion
Hold and Wait
No Preemption
Circular Wait
Mutual Exclusion
When a resources is held by a process in non sharable/exclusive mode ,
other processes will have to wait for the resource to be released.
Hold and Wait
A process must be holding at least one resource and waiting for one or more
resources held by other processes
No Preemption
Resources once granted cannot be forcibly taken away, the holding process
must voluntarily release the resources
Circular Wait
There must be a circular-chain of at least 2 processes where each process is
waiting for a resource held by the next member of the
circular-chain
10
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 10 10
How can deadlock problem be dealt with?
We can, Ignore the problem altogether!
Pretend that deadlocks never occur in the system
let the system to enter into deadlock state, detect the
deadlock and then recover from it
Deadlock Avoidance
Careful resource allocation
Deadlock Prevention
Ensure at least one of the four necessary
conditions for deadlock will not occur
Handling Deadlock
Handling Deadlock
11
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 11 11
Deadlock Recovery
Deadlock Recovery
How to break a deadlock?
Process termination : Abort one or more deadlocked
processes to break the deadlock
Resource pre-emption : Pre-empt some resources from
one or more than one of the deadlocked processes
Resource pre-emption:
Resources will be taken from one or more deadlocked processes and will be
allocated to other processes until the deadlock is broken
Selecting a victim
Which resources and which processes are to be preempted?
Cost factors must be taken into consideration to minimize cost of deadlock
recovery
Starvation
Over and over again, Same process can be picked as victim.
12
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 12 12
Recovery: Process Termination
Recovery: Process Termination
Abort all the deadlocked processes
Abort processes one at a time , until deadlock is broken
Which process should be chosen?
Priority of the process.
How long a process has been computed and how much
time the process required for completion
Resources the process has used
- Type of resources
- Number of resources
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 13 13
Can you answer these questions?
Can you answer these questions?
What is the difference between deadlock Prevention and
Avoidance?
List necessary condition for deadlock?
14
ER/CORP/CRS/OS94 ER/CORP/CRS/OS94 Ver. No.: 1.0 Ver. No.: 1.0 Copyright 2008, Infosys Technologies Ltd. Copyright 2008, Infosys Technologies Ltd.
Education and Research
We enable you to leverage knowledge anytime, anywhere!
Confidential Confidential
I
n
f
o
s
y
s
File System
File System
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential
File Concepts
File Concepts
File is the logical unit with the file system
logical files are mapped to physical entities by the
Operating system
In order to keep track of the file and manage it Operating
system attach some attributes to the file
Attributes of File
Name
Type
Protection
Location
Size
15 15
Data is stored physically in storage media such as hard disks , magnetic tapes etc.
Operating system abstract the data from the storage media and provide a uniform
logical view of the information stored.
In order to keep track of the file and manage it Operating system attach some
attributes to the each file
15
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential
File Operations
File Operations
Create
Write
Read
Delete
Reposition(move) etc
16 16
16
17
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 17 17
File Management
File Management
Part of the Operating System that deals with effective
information management
Features
Minimal I/O operations on files
Flexibility between logical and physical block size
Automatic allocation of file space
Flexible file naming facility such as links, aliases,
etc.
18
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 18 18
File Systems
File Systems
MSDOS -FAT file system
File Allocation Table (FAT) is used to identify all the
clusters of each and every file, allocated in the disk.
Very trivial and was used in Microsofts DOS and early
versions of Windows
UNIX - file system
A data structure called i-node (Index Node) block is used
for describing every file
Very flexible and efficient
NTFS
New Technology File System
Microsoft propriety and used as replacement to FAT
Compatible with UNIX file system in its flexibility and
efficiency
NTFS uses clusters as the underlying unit of disk allocation
A cluster is a number of disk sectors that is a power of two.
Because the cluster size is smaller than for the 16-bit FAT file system,
the amount of internal fragmentation is reduced
19
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 19 19
Comparison of Different File Systems
(Self Study topic)
Comparison of Different File Systems
(Self Study topic)
Features FAT NTFS UNIX file System
Operating Systems DOS and all versions
of Windows
Windows NT,
Windows 2000,
Windows XP
UNIX and Unix
based OS like
Linux, etc.
Volume size Limited Virtually unlimited Virtually unlimited
Max file size Limited Limited by the
volume of the disk
Limited by the
volume of the
disk
Number of files Limited Large Large
Built-in security No Yes Yes
Encryption NO Supported in the
recent versions
like NTFS5.
Inherent
Fault tolerance Low High High
20
ER/CORP/CRS/OS94 ER/CORP/CRS/OS94 Ver. No.: 1.0 Ver. No.: 1.0 Copyright 2008, Infosys Technologies Ltd. Copyright 2008, Infosys Technologies Ltd.
Education and Research
We enable you to leverage knowledge anytime, anywhere!
Confidential Confidential
I
n
f
o
s
y
s
Device Management
Device Management
21
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 21 21
Device Management
Device Management
The part of the operating system that manages to
allocate a device to a requirement or a users job is a
device manager
Functions
Device management provides the simplest interface
possible to the system
To optimize I/O operations and provide maximum
concurrency
A computer system has a wide collection of I/O or peripheral devices. These
I/O devices are equally important as that of memory and processor because
they are the only means of receiving/sending information from/to the external
world. E.g. printers, magnetic tapes, keyboard, cartridges etc. Most of these
devices are mechanical in nature; speed of operation of these devices is
much slower as compare to the speed of the CPU and therefore results in a
bottleneck and low CPU utilization. Due to this variation in the nature of
devices, the OS has to provide a wide range of functionality to different
applications and allow them to control the devices.
The main goals of the OS in this regard are :
simple and easy to handle interface for the system
To optimize I/O operations and provide for maximum concurrency
Ask the audience what are the main input and output devices and which
devices act as both input and output ?
Ans: INPUT Card Reader, Tape Reader, Keyboard.
OUTPUT - Printers, Terminals
Both Input and Output Hard Disk etc
22
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 22 22
Interrupt Handling
Interrupt Handling
Interrupt
is a hardware facility that enables a device to notify
the CPU
causes the CPU to suspend its work, saves the status
of current process and CPU jump to the interrupt
handler routine at a fixed address in memory
The interrupt handler routine is responsible to find out
the cause of the interrupt and to do the necessary
processing , after that CPU returns to the execution
state prior to the interrupt
The initiation and the completion of an I/O request between the CPU and the
I/O channel is done by means of an interrupt. An Interrupt is a hardware
facility which causes the CPU to suspend its work, save the context of the
currently executing process and send appropriate request to the I/O devices.
Mismatch in speed between I/O devices and CPU memory has motivated for
the development of I/O channels or data channels.
The initiation and completion of the I/O operation between CPU and I/O
channels is performed by means of interrupts
Examples of interrupts:
Peripheral requests
Service requests
Hardware faults
System Calls
Interrupts are used in Operating Systems to handle asynchronous events.
There may be many interrupts at the same point of time out of which some
may be very urgent. Interrupts are handled according to priorities to enable
the most urgent work to be done first.
23
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 23 23
Software Interrupts
Software Interrupts
Software interrupts are special instructions to implement
system calls
System calls are used to invoke the kernel services
When system call is called by application program :
Checks the parameters received from the application
Prepare data structure to send the parameters to the
kernel
Executes software interrupt or trap that identifies the
desired kernel service
The instruction i.e. the software interrupt (trap) has an operand that identifies
the desired kernel service. When system call executes the trap instruction,
the interrupt saves the status of the currently executing process and then
implements the requested service.
Software interrupts have less priority as compared to device interrupts
because executing a system call on behalf of an application is less urgent
than servicing a device controller before the latters queue overflows and
loses data.
24
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 24 24
Direct Memory Access (DMA)
Direct Memory Access (DMA)
Direct Memory Access (DMA) is a technique that is
used to transfer data directly between memory and I/O
devices
data channels that allow direct transfer of information
between devices and memory without routing those
transfers through the CPU are said to be performing
DMA
DMA unit (called DMA controller which is like another
processor) can access the data bus by notifying CPU
and can transfer the data in and out of the memory
The load of the CPU with Programmed I/O(PIO) is reduced at times by
offloading some work to a special purpose processor called a DMA
controller.
Programmed I/O(PIO) is a process which uses an expensive CPU for the
data transfer. Because of the mismatch between the speed of memory , I/O
CPU and devices, CPU time is wasted. PIO process is wasteful for devices
that does large data transfers such as a disk drive. In such cases, DMA is
used.
A program would instruct the DMA unit to transfer a specified block of data
from memory to peripheral devices. Whenever, the DMA controller wants to
send data, it sends a notification to the CPU. CPU relinquishes the control
over the system bus and DMA controller directly accesses the memory to
transfer the required data. This scheme is called cycle stealing because the
CPU the machine cycles are stolen and used by the DMA controller to
transfer the data. Thus, the CPU is momentarily prevented from accessing
the main memory, although it can still continue with its operations which
don't require bus. Although this cycle stealing can slow down the CPU
computation, but offloading huge data transfer work to DMA controller
improves the overall system performance.
DMAs are most commonly used by floppy disk drives, tape drives etc.
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential
DMA
DMA
25 25
CPU CPU
Primary Memory
I/O
device
DMA
Bus
25
26
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 26 26
Device Management (Structure of an
I/O System)
Device Management (Structure of an
I/O System)
Application
Program
I/O control
system
Device
driver
Device
controller
Hardware
device
The diagram shown in the slide describes an I/O control system (IOCS). An
IOCS accepts requests from application programs, does initial processing,
validation of requests and routes it to the appropriate handler. I/O interrupts
take place in IOCS. Device drivers are software modules which convert
logical requests of application programs into commands directed to the
device. Device Controllers are hardware units that are attached to the I/O
bus of the computer.
27
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 27 27
Device Management (Allocation
Policy)
Device Management (Allocation
Policy)
Allocation Policy is of two kinds
Dedicated
Shared
Dedicated
Certain devices can be used in a serial and one-at-a-
time manner. For e.g. printer, tapes, etc.
Disadvantage is that it leads to monopoly
Solution is SPOOLing (Simultaneous Peripheral
Operations Online)
Jobs intended to be printed are saved in the disk until the
job is completed. All the saved outputs will be eventually
printed
Why not scheduling algorithms?
Consider a situation when two users want to print files on a printer. A user
A1 has a huge file and after some time user A2 prints another file. If a
scheduling algorithm like Round Robin is used then the output will have few
lines of File 1 interspersed with few lines of File2. Hence, scheduling
algorithms are not used.
The main disadvantage of dedicated policy is that it leads to monopoly. If a
user attempts to print a huge file, then others have to wait till the printing
finishes. A common solution to the above problem is SPOOLing wherein all
the jobs intended to be printed are saved in the disk until the job is
completed. The saved output will be eventually printed. Thus, whenever
simultaneous peripheral operations are made to the on-line resources, the
requests are put in the queue and are stored in the spool files. When the
resources are free, the spool file is retrieved and requests are serviced. The
reason behind storing the file to be printed in a local disk is that even if the
user closes the application that he has given for printing, the printing is not
interrupted. This happens because printing takes place from the local copy
of the file available in the spool of the printer.
28
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 28 28
Device Management (Allocation
Policy)
Device Management (Allocation
Policy)
Shared
Devices are used concurrently by more than one job
Example
Disk
Issues
Readers and writers problem
Mutual exclusion
Security rights
Readers and Writers problem If there are two write requests onto the
same file in a disk, then the question is whether it should be allowed or not.
The same question arises if there are two read requests to the same file.
This brings the issue of a traffic controller.
Mutual Exclusion Though there are multiple jobs sharing access to the
device, there can be only one access actually occurring at the time.
Security Rights - In case of shared devices, there is the need for protection
from malicious or accidentally accessing ones job area by another job
29
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 29 29
Disk Scheduling
Disk Scheduling
One of the goal of operating system is to use hardware
efficiently
Disk drives efficiency is based on two factors:
fast access time and disk bandwidth
Access time has two major components
Seek time is the time required to place the read/write
head to the cylinder containing the desired sector
Rotational latency is the time required for the disk to
rotate the desired sector under the disk head
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential
Disk Scheduling Structure of Disk
Disk Scheduling Structure of Disk
Cylinder
Track
Latency
Seek
R/W Head
31
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 31 31
Disk Scheduling
Disk Scheduling
Disk bandwidth is the total number of bytes transferred,
divided by the total time between the first request for
service and the completion of the last transfer.
Access time and Disk bandwidth can be improved by
scheduling efficiently the servicing of disk I/O requests
32
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 32 32
Disk Scheduling Algorithms
Disk Scheduling Algorithms
FCFS Scheduling
SSTF Scheduling
SCAN Scheduling
C-SCAN Scheduling
LOOK Scheduling
Disk Queue - Contains disk I/O requests
33
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 33 33
Disk Scheduling Algorithms
Disk Scheduling Algorithms
FCFS (First Come, First Served)
perform operations in the same order as in the disk
queue
poor performance
no starvation
34
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential
Disk Queue: 30, 85, 130, 45, 175
Consider total number of cylinders = 200 (0 - 199)
Initially the disk head is at cylinder number 100
199
175
130
100
85
45
30
0
time
34 34
FCFS Scheduling Example
FCFS Scheduling Example
Total seek time is estimated by total arm motion
|100-30|+|30-85|+|85-130|+|130-45|+|45-175|
70+55+45+85+130
385
35
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 35 35
Disk Scheduling Algorithms
Disk Scheduling Algorithms
SSTF (Shortest Seek Time First)
Service the request having minimum distance/seek time
from the current head position
After servicing a request, service the nearest request in
the disk queue, without considering the direction
Compared to FCFS, reduces total seek time
Disadvantages
starvation is possible
Change in direction slows down the operation
36
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 36 36
SSTF Scheduling Example
SSTF Scheduling Example
Disk Queue: 30, 90, 115, 45, 130,175
Consider total number of cylinders = 200 (0 - 199)
Initially the disk head is at cylinder number 100
199
175
130
115
100
90
45
30
0
time
Total seek time is estimated by total arm motion
37
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 37 37
Disk Scheduling Algorithms
Disk Scheduling Algorithms
SCAN
The disk arm starts at one end and moves towards the
other end of the disk, servicing requests until it gets to
the other end of the disk.
At other end, the head movement is reversed and
servicing continues
Variances are less as compared to SSTF
Also called the Elevator algorithm
38
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential
Disk Queue: 30, 85, 130, 45, 175
Consider total number of cylinders = 200 (0 - 199)
Initially the disk head is at cylinder number 100
199
175
130
100
85
45
30
0
time
38 38
SCAN Scheduling Example
SCAN Scheduling Example
Total seek time is estimated by total arm motion
|100-85|+|85-45|+|45-30|+|30-0|+|0-130|+|130-175|
15+40+15+30+130+45
275
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 39 39
Disk Scheduling Algorithms
Disk Scheduling Algorithms
C-SCAN (circular scan)
The disk head moves from one end to the other end of
the disk and provide services to requests as it moves.
Servicing requests in one direction only to provide
uniform wait
When disk head reaches to the other end, it returns
immediately to the start of the disk.
Does not serve requests during the return trip
39
40
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 40 40
C-SCAN Scheduling Example
C-SCAN Scheduling Example
Disk Queue: 30, 85, 130, 45, 175
Consider total number of cylinders = 200 (0 - 199)
Initially the disk head is at cylinder number 100
199 199
175
130
100
85
45
30
0
time
Total seek time is estimated by total arm motion
|100-85|+|85-45|+|45-30|+|30-0|+|0-199|+|199-175|+|175-130|
15+40+15+30+199+24+45
368
41
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 41 41
Disk Scheduling Algorithms
Disk Scheduling Algorithms
LOOK
Similar to SCAN but disk head stops moving towards end
when there is no more requests in that direction
Disk arm moves only up to the last request in each
direction
Provide services in both direction
42
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 42 42
LOOK Scheduling Example
LOOK Scheduling Example
Disk Queue: 30, 85, 130, 45, 175
Consider total number of cylinders = 200 (0 - 199)
Initially the disk head is at cylinder number 100
199
175
130
100
85
45
30
0
time
Total seek time is estimated by total arm motion
|100-85|+|85-45|+|45-30|+|30-130|+|130-175|
15+40+15+100+45
215
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential
Learning approach
Learning approach
The following are strongly suggested for a better learning and
understanding of this course:
Noting down the key concepts in the class, explained by the educator
Analyze all the examples / code snippets provided
Study and understand the self study topics
Completion and submission of all the assignments, on time
Completion of the self review questions in the lab guide
Study and understand all the artifacts including the reference materials /
e-learning / supplementary materials specified
Completion of the project (if applicable for this course) on time
inclusive of individual and group activities
Taking part in the self assessment activities
Participation in the doubt clearing sessions
43 43
43
44
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 44 44
Summary
Summary
Deadlocks
Necessary Conditions
Deadlock Handling
Recovery
File System Management
Introduction
Windows File System
Comparison of Windows and UNIX File System
Device Management
I/O channels, Interrupts and Interrupt Handling
Structure of an I/O System
Disk Scheduling
I
n
f
o
s
y
s
Copyright 2008, Infosys Technologies Ltd.
Confidential 45 45
Thank You
The contents of this document are proprietary and confidential to Infosys Technologies Ltd. and
may not be Disklosed in whole or in part at any time, to any third party without the prior written
consent of
Infosys Technologies Ltd.
2008 Infosys Technologies Ltd. All rights reserved. Copyright in the whole and any part of this
document belongs to Infosys Technologies Ltd. This work may not be used, sold, transferred,
adapted, abridged, copied or reproduced in whole or in part, in any manner or form, or in any
media, without the prior written consent of Infosys Technologies Ltd.
45

Potrebbero piacerti anche