synchronous I/O