1. Linux
New 2.6 kernels have nice nice O(1) scheduler and kernel pre-emption.
2. Mac OS X
BSD scheduler basically, tried and tested solution.
3. Windows
I have no firm details how windows scheduler works, but I believe it's BSD variant, or at least acts very close to it. Whether other parts of the OS are very efficient is separate issue (for example Windows memory paging is quite horrible, well... memory is ultracheap these days :-)). In general, Windows scheduler works fine.
4. AmigaOS
Very limited and aged round robin scheduler. Only pre-Windows 95 and classic Mac OS are worse. Tasks running at higher pririty hog all CPU time from lower pri tasks. Task running at same priority don't have fair CPU time sharing. Executive helps a bit by giving BSDish features. AmigaOS and typical applications are very light, which makes the system very responsive. On the other hand there is single global memory map, no resource tracking, memory protection or swap, making the system faster but more vulnerable and prone to crashes.
PS. I am talking about technical merits and qualities here.