Which interrupts are running?
It depends on your code which you haven't shown. The Timer 0 overflow interrupt is usually active, as that lets the library count when a millisecond is up (roughly).
If you have done a
Serial.begin then serial interrupts would be active. If you have used the I2C library (Wire) then I2C interrupts would be active.
(Disclaimer: That really refers to the Atmega328P. I'm not quite so sure on the ATtiny, it would depend on what the libraries do).
Can I disable them?
If you want to. Doing
noInterrupts() is the simplest way. Note that if you disable interrupts for more than a millisecond (approximately) then the time returned by
micros will be wrong. Plus
delay won't work. Plus you won't be able to serial print properly or at all.
I am using the analogWrite() function to pins that have PWM support. Disabling the interrupts for a "long" time does not seam to effect these, this implies the PWMs are producing the analogue signal in hardware and so interrupts are not required.
That is exactly what it does. Once activated the hardware timers can generate a PWM signal purely in hardware.
There are other ways of timing intervals (than
pulseIn). One method is to use one of the other timers, configured with a small, or no prescaler. Then you can measure up to very high accuracy. I have examples of that on my page about timers.
(The ATtiny85 only has two timers, so you couldn't use the second timer for measuring and do PWM output with it, however you can use Timer 0 for the PWM output). That limits the PWM frequency to its default, however you could still alter the duty cycle)