Development/Linux
sync
by dohk325
2018. 12. 20.
시스템 작업을 위하여 모니터를 보고있는 이 순간 우리의 작업대상이 되는 데이터는 전부 시스템 메모리 에서 그 작업이 이루어진다. 작업의 대상이 되는 데이터는 메모리에 존재하기 때문에 저장하지 않는한 디스크에 저장되지 않는다. 작업하고 있는 도중에 갑자기 전원이 나가거나 장애로 인하여 시스템이 다운되었다면 작업중이던 메모리의 데이터들은 모두 사라져버릴 것이다.
즉, 저장되지 않은 데이터는 모두 잃어버린다는 의미이다.
이런 것을 방지하기 위하여 OA용 SW에는 자동저장이라는 기능이 있어서 사용자가 작업하고 있는 중간에 주기적으로 자동저장해 준다. 사용자가 작업중이던 데이터를 메모리에서 디스크로 저장하는 작업을 프로그램이 주기적이면서 자동으로 해주는 것이 바로 자동저장이라는 기능이다. 그리고 이런 저장작업을 우리는 데이터동기화라고 한다. 데이터동기화란 경우에 따라서 여러가지 의미가 있는데 여기서는 저장되지 않은 메모리의 데이터를 디스크로 저장하는 작업을 의미한다.
Linux시스템에서 이루어지는 이러한 데이터 저장작업 즉, 데이터동기화작업은 시스템관리자가 해주어야 한다. 즉, 현재 작업중인 저장되지 않은 메모리의 데이터를 디스크로 저장하는 작업은 시스템 관리자가 직접 해주어야 한다는 것이다. 이러한 작업을 sync작업 이라고 한다.
시스템관리 도중에 한번씩 위와 같이 sync를 실행해주면 아직 저장되지 않은 메모리의 데이터가 디스크로 저장되는 데이터동기화 작업이 된다는 것이다
"디스크에 저장되어 있지 않은 메모리 버퍼의 데이터를 디스크에 저장하는 sync 작업" 이라고 할 수 있다. 즉, 시스템의 버퍼에 있는 데이터를 디스크에 저장하는 명령어이다.
아직 디스크에 저장이 되지 않은 상태로 버퍼에 남아있는 데이터들은 갑자기 전원이 나가거나 시스템이 종료되었을때에 데이터를 잃어버리게 되는 결과를 초래할 수 있다.
sync 명령어는 버퍼에 존재하는 이런 데이터를 디스크에 저장하여 유실되는 데이터가 없도록 디스크동기화를 위한 명령어이다. 재부팅이나 시스템종료등의 명령어 등으로 시스템을 종료할 때에 종료과정에서 sync 명령어가 자동으로 실행되는 이유도 여기에 있다.