Why does an inverted page table keep a chain of pages per frame when it can only store one of such pages? I'm currently dealing with inverted page tables and how they work. If I understood correctly, an IPT is a table that maps a frame number to a PID and page number. The way this works is by having a hash function map a tuple (PID, page_number) to (frame_number). If the entry of the table given by the frame number contains (PID, page), then we have a hit. Because a hash function can map multiple inputs to one output, we have to keep a chain of pages for each frame (according to my lecture notes).
Why does an inverted page table keep a linked list of pages per frame? Only one page can be loaded into a single frame at a time, how does this make sense? To me this seems more an issue similar to that of direct-mapped caching, where you have to throw out the previous block to make place for a new block.
Hash functions can have collisions, and you need to resolve the collisions.  If two (PID, page_number) pairs map to the same row, only one can be stored there, and you need to have a mechanism to find the other one.
You can use page tables to map multiple virtual addresses (pages) to the same physical address (frame).  For instance, this may be used to support shared memory, copy-on-write, on-demand zeroing for memory allocation, and more.