Search Results for '운영체제'

1 POSTS

  1. 2006.09.11 Orthogonal Persistence

Orthogonal Persistence

Posted 2006. 9. 11. 22:04
오늘의 이야기는 Orthogonal Persistence입니다. 예전에 한국 썬에서 JDO에 관한 글을 보니 persistence를 지속성으로 번역해놨던데, 조금 어색하더군요. persistence는 의미상 지속된다는 뜻이 있지만 이 경우에는 파일 시스템이나 데이터베이스에 영구저장이라는 의미가 강하니깐요. 합당한 번역어를 찾기 힘들 때는 원어를 살려쓴다는 원칙을 따라 persistence로 부르겠습니다.

일반적으로 프로그램은 하드 디스크에 저장된 기계어로 된 코드를 말하고, 프로세스는 이런 프로그램을 컴퓨터의 메모리로 로드하여 실행시킨 상태를 말합니다. 따라서 갑자기 전원을 꺼버리면 프로세스는 모두 날라가버리지만 프로그램이나 프로그램이 파일 시스템에 저장한 데이터만 남아있게 되는거죠. 여기서 어떤 데이터를 영속시킬 것인가하는 것은 전적으로 프로그램에게 달려있습니다.

요즘이야 일부 PDA나 스마트폰처럼 메인 메모리를 플래시(flash) 메모리로 사용하는 경우 전원이 나가도 현재 프로세스들이 그대로 보존되기도 하지만, 원래 전원이 나가면 메인 메모리에 로드된 데이터는 모두 날라가게 되죠.

orthogonal persistence는 프로그래밍 언어나 운영체제가 persistence를 보장해주는 경우를 말합니다. 전원이 갑자기 꺼지더라도 운영체제를 다시 부팅하면 원래 상태로 돌아가게 되는거죠. 이런 기능을 구현한 대표적인 운영체제로 존스 홉킨스 대학에서 리서치 프로젝트로 만든 OS인 EROS가 있습니다.

EROS 프로젝트를 처음 접한 것은 메릴랜드 교환학생 때 운영체제 수업을 들으면서였는데, 그 때 교수님이 이렇게 묻더군요. "파일 시스템이라는 게 꼭 필요한가?", "모든 운영체제는 파일 시스템이 있는가?", "파일 시스템의 목표가 일부 데이터를 영속적으로 저장하기 위한 것이라면 절대 데이터가 날라가지고 않고 껐다켜더라도 모든 데이터가 그대로 보존되어 있다면 굳이 파일 시스템에 저장할 필요가 있는가?"

우리는 파일 시스템의 존재를 당연히 여기지만 실제로 EROS는 파일 시스템이 없습니다. 정확히 말하자면 필요가 없습니다. 프로세스가 사용한 모든 데이터는 별도로 파일 시스템을 통해 저장하지 않더라도 OS가 자동으로 저장해주기 때문이죠. 원리를 간략히 요약하면 OS는 메인 메모리를 캐쉬처럼 쓰고 하드 디스크를 메인 메모리처럼 쓰는 것입니다.

상업적으로 널리 성공한 MS 윈도, 리눅스와 같은 기존 운영체제와는 달리, 기존의 관습을 무시하고 순순한 엔지니어링 관점에서 운영체제를 다시 디자인한다면 그 모습은 지금의 OS와는 상당히 다를지도 모르겠습니다.