Hello huda
In this question we have to consider an independent memory organization i.e. cpu can access any level memory be it cache or main memory directly. Check for coherence in memory organization

a) avg time = 0.9*20[Cache hit]+(1-0.9)[Cache miss]*max(100,1000)[as the org. is independent access is done in parallel fashion] = 118ns

b)avg time = 0.8 [frequency]*118 [avg. time for read] + 0.2[frequency]*1 [Hit ratio of write as it is parallel and direct main memory access is possible]* 1000 = 294.4

c) No. of instructions = 100
write instructions = 20
read instructions = 80
hit ratio = 0.9*80[No. of Hits for read] + 1*20[No. hits for write]/100