이시대 리더와의 만남강의 제목만을 보고 수강 신청을 결심한 건 처음이었다.이화여자 대학교에 입한 한 이후, 많은 선배님들을 뵈오면서, 여자로써 많은 사람들을 이끌 수 있는 리더로써의 내 모습을 그려왔던 나이기에, 이 강의는 제목만으로 나의 학구열을 불태우기에 충분했다.첫 수업, 강의 계획안을 보고서는 흥분을 감출 수 없었다.매 시간마다 연사를 초청하여 특강을 듣는 것도 모자라서, 그 연사 중에 일부는 내가 평소에 존경해 못지 않는 분들도 계시지 않던가.지난 4개월 동안 매주 목요일은 나에게 늘 신선한 긴장감과, 다음 목요일까지 나에 현재와 미래에 대해서 많은 것들을 생각할 거리를 주는 시간이었고 12명의 훌륭하신 연사님을 뵈는 동안 그렇게 한 학기가 지나 버렸다.전공 과목에 숙제와 시험에 대한 스트레스에 지쳐있는 나에게, 이 수업은 가뭄에 단비 같았고, 다른 어떤 수업을 통해서도 얻을 수 없는 참 많은 것들을 느끼고 생각하게 해 줄 수 있는 시간이었다.모든 연사님들의 말씀이 하나같이 다 주옥 같고 교훈적이었지만, 그 중 인상 깊던 몇 특강을 정리해 봄으로써 이 수업을 마무리해보고자 한다.우선 미래 리더십과 역사의식이라는 주제로 강연을 하셨던 이배용 총장님의 강의.셰계화 시대에 급속하게 변화하는 속에서도 지켜야 하는 전통적 가치를 한국문화와 역사적 교훈에서 찾아보면서 올바른 미래를 열어가자면서 강의를 시작하신 총장님은, 한국 역사 속의 창조적 리더십의 덕목에 대해서 말씀해주셨다.시대적 통찰력을 갖고 있는 리더, 역사의식과 미래의식을 갖고 있는 리더, 그리고 포용과 화합으로 균형과 조화를 이룬 리더, 마지막으로 인간주의 정신과 합리주의 성신을 갖은 리더만이 참다운 리더가 될 수 있다는 말씀에, 그 동안 내가 믿었던 것들이 얼마나 속물적이고 물질만능 적인 생각이었는지를 깊게 깨닫게 해 주셨다. 두 번째로는 한국 역사 속의 훌륭한 리더의 사례를 보여주셨는데, 요즘 사극으로도 유명해진 단결력을 보여준 선덕여왕의 유연한 통합적 리더십이나, 한글 등 우수한 문화재를 많이 남기신 세종대왕의 민족문화의 정립과 소통과 포용의 리더십을 예로 드시면서 우리나라가 반만년 동안 수 많은 외례 침략을 받아오면서도 단일 민족과 문화를 잃지 않을 수 있었던 이유를 알 수 있게 해 주셨다. 그리고 한국인은 아니지만 우리 학교를 설립하신 스크랜튼 선생님의 이화설립정신과 글로벌 리더십을 보여주시면서, 한국인의 자긍심을 가지고 오늘을 잘 가꾸고 내일에 희망을 주는 리더십을 발휘하여 미래를 열어 후속 세대들에게 훌륭한 문화와 전통을 남겨주자는 말씀을 하셨다.두 번째로 기억에 남는 강연은, 4번째 주 특강을 맡아 주셨던 우애령 작가님의 강의였다.행복한 삶과 자기 실현이라는 주제로 시작된 강연은 나는 행복한 사람인가라는 질문을 자기 자신에게 던지심으로써 전공 공부에 지쳐있던 나의 뇌를 깨워주셨다.우리가 성인이 되면 자신의 삶이 행복한지 그렇지 않은지를 바라볼 수 있는 관점이 어느 정도 형성된다고 한다. 인간이면 누구나 행복해지기를 바라지만 행복이 무엇이냐고 물으면 선뜻 대답할 수 있는 사람이 그다지 많지 않다는 말씀에 머리가 띵해졌다. 나도 마찬가지였던 것이다. 내가 과연 뭘 위해 사는지도 확실히 알지 못한 체로 그저 가야 한다고 믿고 있던 길을 걷고 있던 나의 마음에 경종을 울리는 강의였다. 나는 과연 행복한 사람인지, 어떻게 사는 것이 인간으로써 바람직한 것인지, 혹은 어떻게 사는 것이 직업인이나 생활인으로써 바람직한 것인지 라는 질문에 아무 대답도 확실하게 할 수 없는 나를 보며 머릿속이 혼란스러웠다. 누구나 부귀나 영화를 꿈꾸며 그것 때문에 때론 남을 짓밟고 사랑하는 사람들을 멀리 하지만, 그렇게 얻은 부귀 영화나 권력 조차 행복이 없으면 아무 소용 없다는 것을 알면서도 모두들 잊고 사는 것은 아닐까?일반적으로 우리는 자아를 자기의 소망과 능력, 그리고 의무라는 세 변으로 이루어진 하나의 삼각형으로 이해한다고 한다. 내가 무엇을 원하고 무엇을 해낼 수 있는지, 또 무엇을 해야 하는지 이해할 때 비로소 자기가 누구인지 알게 된다고 하니, 과연 내가 23년 동안 내 자신을 알고 있었는지 조차 의구심을 품게 되었다. 약점이 아닌 강점에 대해 관심을 갖고, 나쁜 일들 보다는 최선의 일을 하는 데 관심을 갖고, 또한 병리적인 접근 보다 정상적인 사람들의 삶을 충만하게 하는 데 관심을 갖고 사람들의 행복을 위한 구체적인 방법론을 찾아가며 의미 있는 삶을 만들어 가라는 말씀에, 평소 조금은 비관적이고 강점보다는 약점을 찾으려 했던 내 모습을 반성하게 되었다.여러 문학에 나타난 여주인공의 예를 드시며 강점을 탐색해 주신 부분은 특히나 인상이 깊었다.제인 오스틴의 오만과 편견의 엘리자베스의 지혜와 지식에 대한 엄청난 높이나, 용기를 보여준 마가레트 미칠의 바람과 함께 사라지다의 스칼럿트, 그리고 죄와 벌의 소냐가 보여준 사랑과 인간애, 안티고네의 정의감과 지도력 등, 나도 이미 알고 있었던 작품도 있었지만, 한 번도 그러한 관점으로 생각해 보지 못했던 나로써는 내가 읽었던 작품에 대한 신선한 재해석이요, 내가 평소 얼마나 부정적으로 세상 만물을 대하였었는지를 뼈저리게 느낄 수 있는 대목이었다. 강점을 찾고 그것을 활용했을 때의 장점을 설명해주셨을 때는 앞으로 내가 태도만 바꾸면 엄청나게 발전할 수 있을 거라는 기대감과 자신감에 몸에 솜털들이 삐죽 솟는 느낌마저 들었다.두번째 챕터로 인생의 전환기와 희망에 관해 얘기해 주셨다.대학에 입학하기 전에 나는 내 자신과 내 자신의 인생에 관해 어떤 그림을 지니고 있었는지, 입학한 후에 내가 그렸던 그림은 어떻게 변화했는지, 그 변화를 받아들이기 위해 어떠한 행동을 했었는지 연사님의 말씀에 따라 깊이 생각해 보았다. 참 많은 생각들이 들면서, 다시 한번 내 인생의 목표와 그림에 대해서 점검할 수 있는 계기가 되었다. 물론 몇 주를 통해 만나 뵌 연사님들의 강의를 토대로 완전하게 새로운 마음가짐으로 바라보며 생각했음은 물론이다. 내 자신조차 놀랄 정도로 많은 변화와 발전이 있었으리라.지금 우리는 전환기에 있다고 하시면서 인생에 가장 중요한 시기라고 할 수 도 있는 전환기에 현명하게 대처하기 위한 몇 가지 팁을 주신 것이 기억에 남는다.자신에게 충분한 시간을 줄 것, 삶의 임시 방책을 마련할 것, 불편함을 감수할 것, 자기 자신을 돌볼 것, 그리고 마지막으로 가장 기억에 남는 당신에게 필요한 지지를 찾기 라는 말씀은, 그저 혼자 열심히 하는 것만이 덕목이라고 생각하고 있던 나의 생각을 완전히 뒤바꿔 주셨다.입시에 시험에 내 자신을 돌보는 것도 잊은 체 학창시설을 보내온 나였다. 그런 나에게 우울증은 친구와도 같은 것이었다. 우울할 때 내 자신을 스스로 돕는 방법을 한 마디 한 마디 노트에 받아 적으면서 그 강의가 끝나고 나서는 다시는 우울하고 불행하다고 생각하며 인생을 살지 않아도 될 것 같아서 가슴이 벅차기까지 했다. 물론 그 모든 말씀들을 강의를 들은 지 3개월이 지난 지금에도 완벽하게 실천하고 있지는 못하지만, 그 때 그 강의를 듣지 않았을 때의 내 모습과 지금의 내 모습을 생각하면 그날 우애령 작가님의 1시간은 내 인생의 몇 년을 바꿀 만큼 값진 시간이었다고 확신할 수 있다. 요즘도 기분이 울적할 땐, 그 날 들려주셨던 석가모니와의 대화를 되뇌며 기분을 전환한다.마지막으로 정직한 인식과 열린 상상력이라는 제목으로 강의를 해주신 정진홍 석좌 교수님의 강의에서는 세상을 사는 삶에 대한 나의 인식을 바꿔 놓기에 충분했다. 특히 게으름은 악이고, 해답은 내가 거쳐온 것만 알 수 있다는 말씀에, 항상 내 자신을 합리화 하며 하기 싫은 것들을 미루고 게으름 펴왔단 내 자신을 콕 집어 하신 말씀 같아서 갑자기 고개가 숙여졌다. 중요한 것은 해답을 제공하면서 물음을 관리하는 힘의 구조는 물어야 하는 물음과 도달해야 하는 해답을 전제한다는 사실, 그리고 그렇게 전제된 물음과 해답을 정당화 한다고 하는 사실이라고 하셨다. 우리가 간과하지 말아야 할 것은 기존의 권위가 지닌 해답의 순수성이라고 하셨다. 당연한 말들처럼 여길 수 있겠지만, 다시 한번 그 단어들의 의미를 되 집어 가며 내 머릿속을 정리할 수 있었다.교수님께서 소개해 주신 영어 시 한편은, 영어시가 단순히 영어 공부 이상의 의미를 가질 수도 있다는 사실을 처음으로 느끼게 해 주었다. 지난 여름 뉴욕에서 보냈던 어학연수 기간을 떠올리며, 그 때 단순히 영어 공부에만 목적을 두지 않고, 수업 시간에 읽었던 수 많은 소설과 시, 노래 가사들의 의미를 곱씹었다면 그 시간을 조금 더 뜻 깊게 보낼 수 있지 않았을까를 아쉬워하며..그 외에도 정말 많은 훌륭한 연사님들이, 어느 누가 더 좋다고 할 수 없을 만큼 주옥 같고 의미 있는 말씀들을 해 주셨다. 하나 하나 열거 할 수는 없지만, 12차례에 걸친 특강과 강의 하나 하나마다 나에게 준 크고 작은 변화를 생각하면, 이번 학기, 아니 내 전 학창 시절을 통해서 가장 의미 있고 뜻 깊은 시간이었다고 감히 말하고 싶다.다음 학기, 어떤 과목을 수강할까, 어떤 과목이 점수를 좋게 받을까를 고민하며 시간표를 뒤지고 있을 후배들에게, 강력히 추천한다.마지막으로, 이토록 훌륭한 강의를 들을 수 있도록 준비 해 주신 최민숙 교수님께 깊은 감사를 표하며, 길지 않은 소감 문을 마친다.
Vox Academica 제 4 회 정기 연주회대중가요, 팝송 등에 익숙해져 있던 나에게 오페라는 그리 친숙한 장르는 아니었다. 그래도 우리학교를 나오신 선배님이 나오신 다는 얘기에 왠지 모를 기대감을 안고 어둠 속에 자리를 잡았다. 그 분들의 생생한 표정을 보고 싶다는 생각에 무대에서 아주 가까운 앞자리로..전반적으로 참 아쉬웠던 점이 있다면 모든 노랫말이 이탈리어 였다는 점. 물론, 오페라가 이탈리아에서 시작되었고 25000여개가 넘는 작품 중 과반수가 이탈리어로 씌어졌다는 사실에 어쩔 수 없다는 건 잘 알지만 무언가 많은 사연이 있고 많은 내용을 담고 있는 곡들을 그저 배우들의 표정과 연주에서 흘러나오는 분위기만으로 느껴야 한다는 점은, 대중가요를 들어도 멜로디나 리듬보다는 가사를 곱씹는 나에게는 크나큰 안타까움이 아닐 수가 없었다. 여기 나오는 곡들에 가사나 비하인드 스토리를 사전에 충분히 공부하고 오지 못했던 것을 후회하며 최대한 배우들의 성량과 표정과 몸짓의 변화, 곡의 분위기 등을 통해 느끼려고 애쓰면서 감상에 임했다.이런 저런 생각을 하던 중, 적막 속에 조명이 어두워지고 오페라 "Julius Caesar" 중에서 나왔다는 “Se pieta di me non senti” 의 피아노 반주가 시작되었다. 어려서 즐겨 읽던 로마 신화에 자주 등장하는 낯설지 않은 제목의 오페라여서 였을까? 그의 죽음 만큼이나 슬픈 분위기와 음색은 가사를 전혀 알아들을 수 없는 나를 비롯한 모든 관객들을 숙연하게 만들기에 충분했다. 씨저왕의 슬픈 죽음을 떠올리며 감상에 빠져있는 도중, 두번째 곡 "I due supposti Conti" 오페라에서 나온 “Infelice scentura” 와 "Linfedelta delusa" 라는 오페라에서 나온 “E la pompa un grand imbroglio” 라는 곡이 연속으로 흘러나왔다. 내용은 잘 파악하기 힘들었지만 청명한 피아노의 선율과 소프라노 음색이 내 귀를 때렸다. 역사적으로 비극적인 죽음과 사랑이 많았던 로마시대를 다룬 이야기였을까? 음악이란 대단했다. 단 한단어의 이탈리아어도 모르는 내가 그 오페라에서 전달하는 슬픔을 이해할 것만 같았다. 이럴 줄 알았으면 이탈리어 한 두 단어라도 알아둘걸 하는 후회와, 도대체 어떤 스토리일까 궁금해하는 동안 네번째 곡이 시작되었다. "Hyppolyte et Amoureux" 라는 오페라의 “Rossignols amureux”사랑의 서곡인가? 비록 남자배우가 있는 건 아니지만 어딘가 모르는 애처로움이 느껴지는 음색과 표정. 그녀의 눈빛에서도 사랑을 읽을 수 있을 것만 같았다. 다음으로 오페라 “"Lincoronazione di Popea" 중의 “Signor, hoggi rinasco. 기승전결이 명확하게 느껴지는 템포와 표정을 보며 어떤 갈등을 그린 곡이 아닐까 상상하는 동안 1부가 끝났다. 인터미션 동안 숨겨진 내 상상력의 재발견과, 가사 없이 멜로디와 연주자의 몸짓, 선율, 음색, 표정만으로 이렇게 많은 것을 전달할 수 있다는 사실에 새삼 놀라움을 느끼며 다음번엔 꼭 사전에 지식을 좀 갖고 와서 제대로 감상해야겠다고 다짐했다.2부 첫째 곡은 오페라 "Die Entifuhrung aus den Serail" 중 “Welche Wonne, welche LustDurch Zartlichkeit” 라는 곡. 조금은 빠르고 경쾌한 템포의 반주가 아니더라도 그녀의 표정과 음색에서 신나게 깡총 걸음을 뛰는 소녀의 몸짓이 연상되었다. 다음으로 "Faust" 라는 오페라에서 나왔다는 “Un Bouquet... Ah! Je ris de me voir” 라는 곡은 어떤 비극을 노래한 것일까? 당차지만 애절한 표정과 피아노 선율은 이전 곡을 통해 가볍고 즐거워졌던 내 마음이 단숨에 차분하게 가라앉혀 주었다. 다음으로 "La Traviata" 오페라의 “Estrano..Ah! fors'e lui che l'anima” 라는 곡 역시 연주자의 몸짓만으로도 애절함과 안타까움을 읽을 수 있는 곡이였다. 설령 내 유추들이 틀렸으면 어떠랴. 이탈리아어로 “안녕” 도 모르는 나를 이렇게나 심취하게 만든 것만으로 그 분들의 연주실력, 가창력, 연기력은 나의 경외심을 불러 일으키기에 충분했다. 어떠한 갈등의 극적인 해결이 된 것처럼 느껴지는, 오페라 “Il Barbiere di Siviglia" 의 “Una voce poco fa” 라는 곡을 마지막으로 길게 느껴질 수도 있었던 1시간 반 가량의 공연이 눈깜짝할 사이에 끝났다. 우뢰와 같은 박수 속에 마지막으로 관객들에게 인사를 해 주시는 선배님들의 자신감 넘치는 표정에서 좀 전 극중에서 연기했던 배역들과는 완전히 다른 분들처럼 느껴졌다. 자신의 분야에서 프로가 된다는 게 이런 것이구나 라는 걸 새삼 깨달으면서, 나도 그분들처럼 내 분야의 진정한 프로가 되고 싶다는 욕심이 생겼다. 별다른 기대 없던 나에게 여러가지로 많은 생각을 하게 해 준 이 공연을 볼 기회를 제공해 준 “_______” 과목에 감사를 전하며 짧은 감상평을 마친다.
1.1연구 배경 및 목적급속한 인터넷의 보급으로 빠르고 간단한 통신수단으로 Instant Messenger 가 급부상 하기 시작하였다. 특히 우리나라는 인터넷 보급률 세계 1위로서 대다수의 사람들이 직장, 혹은 학교, 집 등지에 인터넷이 가능한 PC를 사용하기 때문에 요금 걱정 없고 간편하며 많은 정보를 간단하게 전송할 수 있는 Instant Messenger는 젊은이들 층을 주축으로 큰 인기를 얻기 시작해 이제는 중, 장년층이나 어린 아이들에게도 없어서는 안될 통신 수단으로 급속하게 대체되고 있다. 뿐만 아니라 Instant Messenger 를 이용하여 회의나 업무 처리 등을 하는 회사들도 늘어감에 따라 Instant Messenger 는 날로 그 인기를 더해가고 있다. Instant Messenger 는 여러 가지로 편리하고 유용한 통신수단이긴 하지만, 컴퓨터로 업무를 보는 직종에 종사하는 직장인의 경우 업무 방해의 큰 요인으로 작용하는 경우도 적지 않아서 이를 제한하는 회사들까지 생겨나기에 이르렀다. 본인 역시 Instant Messenger 의 불필요한 채팅으로 시간을 많이 뺏기는 편이어서 이 단점을 보완할 수 있는 기능을 추가한 Instant Messenger 를 구상해 보았다. 또한, 요즘 젊은이들 사이에 엄청난 인기로 닷컴 기업들에 짭짤한 수익 모델이 되고 있는 아바타를 접목하면 아바타를 선호하는 십대를 비롯한 젊은 층에 큰 인기를 얻을 수 있을 것이라 생각되어 아바타를 접목한 Instant Messenger 를 구상하기에 이르렀다.1.2개발 목표1.2.1P2P(Peer to Peer) Instant MessengerMSN Messenger 를 기본 참고 모델로 하여 Winsock 을 이용한 Instant Messenger 를 개발한다. 단, MSN Messenger 에서 사용한 Server/Client System 이 아닌 Peer to Peer System 으로 설계하여, 서버의 부하를 최소화하여 기존 메신저들의 고질적인 문제였던 bottleneck 현상과, 메시지 랙, 사용자 증가에 따른 서버증설 등을 해결하고자 한다.
1.구현배경지금은 인터넷이 보급되어 대부분의 사람들이 웹브라우져 기반의 채팅을 즐기고 있지만, 예전 모뎀을 이용한 전화접속을 해서 통신을 하는 사람이 대부분인 시절에는 텔넷 방식의 호스트 프로그램을 사용하는 나우누리나 하이텔 같은 곳에서 채팅을 하고 정보를 얻곤 했었다. 그 시절, 채팅 방 중에 타자방이란 것이 유행을 했었는데, 일반 채팅방에서 어느 한 사람이 타자 프로그램을 돌리면 그 방에 참여한 여러 사람이 타자 게임을 즐기곤 했었다. 타자 게임을 즐겨 하던 나는, 대부분의 사람들이 텔넷 방식을 버리고 웹브라우져 기반의 채팅에 젖어 있어서 찾아 보기 힘든 지금 언제 어디서나 인터넷이 연결된 곳이라면 간단하게 즐길 수 있는 타자 채팅 게임을 만들어 보고 싶은 생각이 들어, 그것을 이번 학기 Network Programming 기말 프로젝트의 주제로 선정하게 되었다.
REPORT과목 : 운영체재담당 : 교수님학과 : 컴퓨터공학과이름 :학번 :제목 : linux memory management- 목 차 – TOC o "1-3" h z u HYPERLINK l "_Toc52860190" 1 가상 메모리의 추상적 모델(abstract model) PAGEREF _Toc52860190 h 3 HYPERLINK l "_Toc52860191" 1.1 요구 페이징(Demand Paging) PAGEREF _Toc52860191 h 4 HYPERLINK l "_Toc52860192" 1.2 스와핑(Swapping) PAGEREF _Toc52860192 h 5 HYPERLINK l "_Toc52860193" 1.3 공유 가상 메모리(Shared Virtual Memory) PAGEREF _Toc52860193 h 6 HYPERLINK l "_Toc52860194" 1.4 물리적 주소 모드(Physical Addressing Mode)와 가상 주소 모드(Virtual Addressing Mode) PAGEREF _Toc52860194 h 6 HYPERLINK l "_Toc52860195" 1.5 접근 제어(Access Control) PAGEREF _Toc52860195 h 7 HYPERLINK l "_Toc52860196" 2 캐시(Cache) PAGEREF _Toc52860196 h 8 HYPERLINK l "_Toc52860197" 3 리눅스 페이지 테이블(Linux Page Table) PAGEREF _Toc52860197 h 9 HYPERLINK l "_Toc52860198" 4. 페이지의 할당(allocation)과 해제(deallocation) PAGEREF _Toc52860198 h 9 HYPERLINK l "_Toc52860199" 4.1 페이지 할당(Page Allocation) PAGEREF _Toc52860199 h 11 HYPERLINK l "_Toc52860200" 4.2용되지 않도록 주의해야 한다. 물리적 메모리를 절약하는 방법 하나는, 실행중인 프로그램이 현재 사용하는 가상 페이지만을 로드하는 것이다. 예를 들어, 데이터베이스 프로그램이 데이터베이스에 질의를 한다고 하자. 이 경우 모든 데이터베이스가 메모리에 로드될 필요는 없다. 검색할 데이터 레코드들만 있으면 된다. 데이터베이스 질의가 검색 질의라면, 데이터베이스 프로그램에서 새로운 레코드를 추가하는 것을 처리하는 부분의 코드를 읽어들일 필요는 없을 것이다. 이렇게 가상 페이지들이 접근되는 경우에만 메모리에 읽어들이는 기법을 요구 페이징이라고 한다.프로세스가 현재 메모리에 없는 가상 주소를 접근하려고 하면, 프로세서는 참조된 가상 페이지에 대한 페이지 테이블 엔트리를 찾을 수 없을 것이다. 예를 들어, 그림 3.1에서 프로세스 X의 페이지 테이블에는 가상 페이지 프레임 번호 2에 대한 엔트리가 없으므로, 프로세스 X가 가상 페이지 프레임 번호 2에 포함된 주소에서 읽으려고 하면, 프로세서는 그 주소를 물리적 주소로 변환할 수 없을 것이다. 이 시점에서 프로세서는 운영체제에게 페이지 폴트 가 발생했다고 통보한다.만약 폴트가 발생한 가상 주소가 유효하지 않은 것이라면, 그 프로세스는 접근할 수 없는 가상 주소에 접근하려고 한 것이다. 대체로 이건 메모리의 아무 주소에나 값을 쓰는 것처럼, 응용프로그램이 잘못된 것이다. 이 경우 운영체제는 이 프로세스를 종료시켜, 시스템의 다른 프로세스들을 이 잘못된 프로세스로부터 보호한다.만약 폴트가 발생한 가상 주소가 유효한 것인데, 주소가 가리키는 페이지가 메모리에 현재 없다면, 운영체제는 해당하는 페이지를 디스크의 이미지로부터 메모리에 가져와야 한다. 디스크 접근은 상대적으로 긴 시간이 걸리므로, 프로세스는 페이지가 도착할 때까지 한참을 기다려야 한다. 시스템에 실행할 수 있는 다른 프로세스가 있다면 운영체제는 이들 중 하나 를 선택하여 실행한다. 가져온 페이지는 빈 물리적 페이지 프레임에 기록되고, 가상 페이지 프레임 번호를 위한 엔만이 스왑 파일에 저장된다. 이들 페이지가 스왑 파일에 기록된 다음 더 이상 변경되지 않았다면, 그 페이지가 다음에 스왑 아웃될 때는 이미 그 페이지가 (동일한 내용으로) 스왑 파일에 있으므로, 스왑 파일에 기록할 필요가 없다. 대신 그 페이지는 그냥 폐기하면 된다. 스와핑이 심하게 일어나는 시스템에서는 이렇게 함으로써 불필요하고 값비싼 디스크 연산을 많이 줄일 수 있다.하드웨어 캐시(Hardware Cache) 흔히 구현되는 하드웨어 캐시는 프로세서 내부에 있는 페이 지 테이블 엔트리(PTE)의 캐시이다. 이 경우 프로세서는 항상 페이지 테이블을 직접 읽 는 것이 아니라, PTE를 필요로 할 때마다 페이지에 대한 변환 결과를 캐시한다. 이들은 변환 참조 버퍼(Translation Look-aside Buffers, TLB)라고 불리며 시스템의 여러 프로세스의 페이지 테이블 엔트리의 캐시된 복사본을 갖고 있다.가상 주소를 참조할 때, 프로세서는 TLB 엔트리에서 일치하는 항목을 찾으려고 한다. 만 약 찾는다면, 가상 주소를 바로 물리적 주소로 변환하여, 데이터에 대한 올바른 연산을 수행할 수 있다. 프로세서가 일치하는 TLB 엔트리를 찾지 못하면, 운영체제의 도움을 받아야 한다. 도움을 받기 위해 운영체제에게 TLB를 찾지 못했다는(TLB miss) 신호를 보낸 다. 문제를 해결하도록 운영체제에게 예외 신호를 전달하기 위해서는 시스템마다 특유한 메커니즘이 사용된다. 운영체제는 주소 변환을 위해 새로운 TLB 엔트리를 생성한다. 예 외가 처리된 다음, 프로세서는 같은 가상 주소 변환을 다시 시도한다. 이번에는 이 가상 주소에 해당하는 유효한 TLB 엔트리가 있기 때문에 잘 처리될 것이다.하드웨어 캐시이든 다른 캐시이든 캐시를 사용하는 것의 단점은, 그렇게 효율을 높이기 위 해서 리눅스는 이들 캐시를 관리하는데 더 많은 시간과 공간을 사용해야 한다는 것과, 캐시 가 망가지는 경우 시스템이 죽는다는 것이다.그림 3.3 : 3단계 페이지 테이블3 리눅스 페이지 테이블리 영역을 나타내는 vm_area_struct 를 찾아야 한다. vm_area_struct 자료구조를 검색하는 것은, 페이지 폴트를 효율적으로 처리하는데 있어 핵심적이기 때문에, 이들 자료구조는 AVL(Adelson-Velskii and Landis)8 트리 구조로 만들어져 있다. 만약 폴트가 발생한 가상 주소에 대한 vm_area_struct 자료구조 가 없다면, 이 프로세스는 금지된 가상 주소에 접근한 것이다. 리눅스는 SIGSEGV9 시그널 을 이 프로세스에 보내며, 이 프로세스가 그 시그널을 처리하는 핸들러를 갖고 있지 않다면, 프로세스는 종료될 것이다.그런다음 리눅스는 발생한 페이지 폴트의 유형과, 가상 메모리의 이 영역에 대해 허용된 접 근 유형을 비교한다. 프로세스가 읽기만 허용된 영역에 쓰려고 하는 것처럼, 허용되지 않은 방법으로 접근하려고 하면 메모리 에러가 시그널로 전달된다.페이지 폴트가 올바른 것이라도 판단했다면, 리눅스는 이를 처리해야 한다. 리눅스는 스왑 파일에 있는 페이지와, 디스크의 어딘가에 있는 실행 이미지의 일부인 페이지를 구분해야 한다. 구분을 위해 폴트가 발생한 가상 주소의 페이지 테이블 엔트리를 사용한다.그 페이지의 페이지 테이블 엔트리가 유효하지 않지만 비어있지도 않다면, 페이지 폴트는 스왑 파일에 들어있는 페이지에 대하여 발생한 것이다. 알파 AXP의 페이지 테이블이라면, 유효 비트가 설정되지 않고, PFN 항목에 0이 아닌 값을 가진 엔트리들이 이에 해당된다. 이 경우 PFN 항목은 스왑 파일의(그리고 어떤 스왑 파일의) 어느 부분에 그 페이지가 들어있는 지에 대한 정보를 갖고 있다. 스왑 파일에 있는 페이지들을 어떻게 다루는가는 이 장의 뒤에서 설명한다.모든 vm_area_struct 자료구조가 가상 메모리 연산을 갖고 있는 것은 아니고, 가지고 있 다고 해도 nopage연산을 가지고 있지 않을 수도 있다. 이는 기본적으로 리눅스가 새로운 물 리적 페이지를 할당하고 이에 대한 유효한 페이지 테이블 엔트리를 생성하여, 메모리 페이지를 스왑 아웃할 때에도 시계 알고리즘(clock algorithm)을 사용한다. 커널 스왑 데몬은 실행할 때마다 맨 마지막으로 스왑 아웃한 공유 가 상 메모리 페이지가 무엇이었는지를 기억한다. 이를 위해 두개의 인덱스 값을 유지 하는데, 하나는 shmid_ds 자료구조 집합에 대한 인덱스이고, 다른 하나는 시스템 V 공유 메모리 영역을 나타내는 페이지 테이블 엔트리의 리스트에 대한 인덱스이다. 이 방법은 시스템 V 공유 메모리 영역이 공정하게 희생되게 한다.어떤 시스템 V 공유 메모리의 가상 페이지에 대한 물리적 페이지 프레임 번호는, 이 가상 메모리 영역을 공유하는 모든 프로세스의 페이지 테이블에 들어있기 때문에, 커널 스왑 데몬은 이들 페이지 테이블 모두를 변경하여, 이 페이지가 더이상 메모리에 없고 스왑 파일에 들어 있다는 것을 알려주어야 한다. 스왑 아웃되는 각 공유 페이지마다, 커널 스왑 데몬은 이 페이지를 공유하고 있는 프로세스들의 페이지 테이블로부터 페이지 테이블 엔트리를 찾 는다 (각 vm_area_struct 자료구조에서 포인터를 따라감으로써). 이 시스템 V 공유 메모 리 페이지에 대한 프로세스의 페이지 테이블 엔트리가 유효하면, 데몬은 그것을 유효하지 않고 스왑 아웃된 페이지 테이블 엔트리로 변환하고, 이 (공유된) 페이지의 사용자 수를 1 감소시킨다. 스왑 아웃된 시스템 V 공유 페이지 테이블 엔트리에는, shmid_ds 자료구조 집 합에 대한 인덱스와, 이 시스템 V 공유 메모리 영역에 대한 페이지 테이블 엔트리의 인덱스 가 들어 있다.공유하는 프로세스들의 페이지 테이블이 모두 변경되어 그 페이지의 카운트가 0이 되면, 이 공유 페이지를 스왑 파일로 스왑 아웃할 수 있게 된다. 이 시스템 V 공유 메모리 영역에 대 한 shmid_ds 자료구조가 가리키고 있는 리스트에 들어 있는 페이지 테이블 엔트리들은 스왑 아웃된 페이지 테이블 엔트리로 교체된다. 스왑 아웃된 페이지 테이블 엔트리는 유효하 지 않지만, 열린 스왑 파일들 중시된다.