I am facing a major problems with maintaining session & object lock outs.

Current Scenario:
1.) I have 600 users logging into the oracle database.
2.) On a day to day basis i am seeing that there are session locks and object locks.
3.) The INSERTs and UPDATEs are going very slow due to which SELECT statements to those objects are taking too much time to execute.

I need help in following areas please:

1.) How to deal with making the INSERTs and UPDATEs faster, so that SELECT statements dont wait too long for data retrieval.
2.) Should the use of FOR UPDATE clause while creating cursors be avoided or not.
2.) I need to find out all long running transaction and all sessions which is not performing any operations or is been hanged up which may be due to network failure.

Need help pals, can any one.