운영체제[Nachos Project]목 차Ⅰ.Nachos 시스템 소개----------------------------------1Ⅱ. 작업 환경------------------------------------------7Ⅲ. Cross-Compiler 설치 과정----------------------------8Ⅳ. Nachos compile 과정-------------------------------15Ⅴ. Nachos application compile 과정Ⅵ. Nachos 실행 및 결과Ⅶ. main() 함수 분석 내용Ⅷ. 결론 및 고찰Ⅸ. 참고 문헌Ⅰ. Nachos 시스템 소개Computer Software는 일반적으로 System programs(컴퓨터 하드웨어 및 각종 정보를 효율적으로 사용할 수 있도록 지원하기 위한 프로그램의 집합체로서 사용하게 편리한 서비스를 제공 한다) 과 application programs(OS 위에서 사용자가 직접 사용하게 되는 소프트웨어)2 종류의 프로그램으로 분류 할 수 있습니다. OS는 System programs 중 핵심이 되는 프로그램으로서, 하드웨어를 효율적으로 관리해 주는 프로그램들로 구성되어 있다. 운영 체제는 데이터를 입력하여 결과를 만들어 내는 일을 직접 수행하지는 않지만, Application programs이 실행될 수 있도록 도와주는 역할을 한다. 즉, 사용자의 요구를 하드웨어에 전달하여 컴퓨터를 보다 편리하고 효율적으로 사용할 수 있도록 사용자와 하드웨어를 연결해 준다 즉 OS는 사용자 프로그램 과 하드웨어 사이의 링크 같은 것입니다.OS는 구성 요소의 주 topic에따라 OS를 분할 할 수 있습니다.1. 프로세스 관리 : Application 과 System program의 생성과 삭제를 하고 Application과 System program 간의 연결, 스케줄 관리, 동기화 등을 도와줍니다.2. 메인 메모리 관리 : 모든 Application Program은 메인 메모리 의 공간을 필요로 합니운트하는 스택이 필요하게 됩니다.두 개의 스레드를 실행하고 있는 하나의 프로세스스레드는 또한 일반적으로 많은 것들이 프로세스와 유사합니다.스레드도 프로세스와 마찬가지로 하나의 실행 흐름이므로 실행과 관련된 데이터가 필요하며 일반적으로 스레드는 자신만의 고유한 스레드 ID, 프로그램 카운터, 레지스터 집합, 스택을 가지며코드, 데이터, 파일 등 기타 자원은 프로세스 내의 다른 스레드와 공유합니다.스레드는 커널 스레드와 사용자 스레드 2가지로 나눌 수 있습니다.커널 스레드는 운영체제가 지원하는 스레드 기능으로 구현되며, 커널이 스레드의 생성 및 스케줄링 등을 관리합니다. 스레드가 시스템 호출 등으로 중단되더라도, 커널은 프로세스 내의 다른 스레드를 중단시키지 않고 계속 실행시켜주며 다중처리기 환경에서 커널은 여러 개의 스레드를 각각 다른 처리기에 할당할 수 있습니다. 다만, 사용자 스레드에 비해 생성 및 관리하는 것이 느리다는 단점이 있습니다.사용자 스레드는 커널 영역의 상위에서 지원되며 일반적으로 사용자 레벨의 라이브러리를 통해 구현되며, 라이브러리는 스레드의 생성 및 스케줄링 등에 관한 관리 기능을 제공합니다. 동일한 메모리 영역에서 스레드가 생성 및 관리되므로 속도가 빠른 장점이 있는 반면, 여러 개의 사용자 스레드 중 하나의 스레드가 시스템 호출 등으로 중단되면 나머지 모든 스레드 역시 중단되는 단점이 있습니다. 이는 커널이 프로세스 내부의 스레드를 인식하지 못하며 해당 프로세스를 대기 상태로 전환시키기 때문입니다.? 동기화동시에 프로세스에 접근해 자원을 공유할 경우 여러 가지 문제들이 생겨 날 수 있습니다.우리는 공유 불가능한 자원의 동시 사용을 피하기 위해 상호배제를 해야하며 임계 구역(critical section) 으로 불리는 코드 영역에 의해 구현된다.예) 프로그램의 일부분이 여러 단계를 거치면서 데이터를 읽고 쓰고 있다고 하자. 그런데 예상치 못한 사건 등에 의해 다른 스레드가 동작하기 시작했다. 첫 번째의 스레드가 쓰고 있는 영역에서, 이 두 루틴이 실행되어야 하는데, 현재 진행 중인 프로그램이 영향을 받으면 안되므로 우선 ISR에서 레지스터를 스택에 대피하고 해당 일을 수행합니다. 레지스터 대피는 ISR에서 행하도록 기계어 코드를 구성해야 한며 C로 작성할 경우 일반함수와 차이를 두어 컴파일마다 정의하는 방식이 제공됩니다.? System Calls and exception기본적으로 시스템 콜은 운영 체제 와 응용 프로그램 사이의 인터페이스입니다.응용 프로그램의 요청에 따라 커널에 접근하기 위한 것이며 보통 C나 C++과 같은 고급 언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에 고급 API를 통해 시스템 호출에 접근하게 하는 방법입니다.일반적으로 user 모드와 supervisor 모드가 존재하며처음에는 사용자와 관리자, 고장 및 악성 프로그램 등 에서 시스템 을 보호 하기 위해 사용자 모드에서 실행되고 있습니다. 그래서 사용자 모드에서 특정 작업을 수행 하기 위해 시스템 콜을 통해 관리자 모드로 바꿀 수 있습니다.시스템 호출의 세 가지 기능은 다음과 같습니다.1. 사용자 모드에 있는 응용 프로그램이 커널의 기능을 사용할 수 있도록 하는 것.2. 시스템 호출을 부르면 사용자 모드에서 커널 모드로 바뀐다3. 커널에서 시스템 호출을 처리하면 커널 모드에서 사용자 모드로 바뀌어 작업을 계속한다.OS와 Application 사이에 있는 SystemCall 의 모습? 멀티 프로그래밍처음부터 Nachos는 한 명의 사용자가 프로그램을 사용하는 것을 전제로 하고 있습니다. 주소 0 의 메인 메모리에 시작하며, 이 그림 에서는 가상 주소를 1:1로 physical 주소로 매핑하는 모습 입니다.그러나 많은 경우 멀티 프로그래밍 이 필요하며 메모리 할당과 프로세스를 실행하는 멀티프로그래밍에 있어서 우리는 시작주소가 0이 아닐 것을 쉽게 예상 할수 있습니다.문제는 프로세스와 오른쪽 물리적 주소 사이에 map 하는 것을 유지하는 것입니다.? 파일 시스템컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근ittc.ukans.edu/projects/nachos/http://www.funet.fi/pub/OS/Nachos/http://www.cs.columbia.edu/~hgs/teaching/os/nachos.htmlhttp://www.math.luc.edu/~ziff/courses/os/nachos/http://www.cs.washington.edu/homes/tom/nachos/(2) 작업 환경분 류내 용하드웨어CPU - Core2Quad 2.66GHz, RAM ? 3GB가상머신Oracle VitualBox 4.2.8, 2GB 메모리 할당운영체제Ubuntu 12.04 LTS 32bit 한국어(3) Cross-Compiler 설치 과정- Cross-Compiler 란?원시 프로그램의 번역이 이루어지는 컴퓨터와 번역된 기계어에 이용되는 컴퓨터가 서로 다른 기종의 컴퓨터일 때 사용하는 컴파일러의 한 가지. 어떤 컴퓨터에서 동작하는 프로그램을 만들기 위해 다른 컴퓨터의 개발 환경을 사용해서 프로그램을 작성하는 경우에 사용된다. 동작 속도가 느린 컴퓨터, 완성되어 있지 않은 컴퓨터, 개발 환경 구축이 불가능한 컴퓨터용의 실행 프로그램을 만드는 경우 등에 사용한다. 예를 들면, 마이크로프로세서의 프로그램 개발 또는 게임기의 프로그램 개발은 이와 같은 방법을 채택하는 경우가 많다.- 설치 과정1. binutils-2.10.1.tar.gz 와 gcc-2.95.2.tar.gz 를 다운로드 받는다.해당 파일은 http://ftp.gnu.org/gnu 에서 다운로드 할 수 있다.binutils 다운로드gcc 다운로드2. 설치 과정 중 파일을 수정하는 경우가 많이 생기는데, 이러한 경우 유용한 텍스트 에디터터가 있다. 앞으로 많이 선보일 것 같아 여기서 미리 소개한다.바로 ‘Emacs’ 라는 텍스트 에디터 프로그램이다.우선 설치에 앞서 root 권한으로 접속하겠다.‘su root’ 입력 후 root 비밀번호를 입력하면 된다.root 권한 획득3. ‘Emacs’를 설치하겠다. 우분lude “iostream.h”를 사용하고 있어서 오류가 난 것이다. 그러므로 #include “iostream.h” 이 부분을 삭제 한다.4. 사진에는 못나왔지만 #include을 추가하고using namespace std;도 추가로 넣는다.5. 오류를 수정하고 다시 make depend를 입력 한 뒤 thread 디렉터리로 이동 했다.6. make를 실행 해보지만 다시 한 번 오류가 생긴다.7. threads 디렉터리에 Makefile.common을 emacs Makefile.common 명령어를 통해 수정 한다.-fwritable-strings를 삭제해서 gcc 옵션을 없앤다.8. 삭제해서 수정된 모습이다.10. make를 다시 실행 해 nachos라는 실행 파일을 생성 한다.Nachos compile 완료!!!(5) Nachos application compile 과정1. bin 디렉터리로 이동해 make 입력한다2. coff2noff file의 생성 확인 => cross compile 시에 coff형식으로 생성된 실행파일을 Nachos에서 지원하는 noff형식으로 바꾸어주는 프로그램이다.여기서 out.c 와 관련해서 error 가 발생하는데 프로젝트 하는데는 지장이 없다.3. cd code/test 디렉터리로 간 뒤 make를 하지만 오류가 나서 emacs Makefile을 통해 소스코드를 수정한다. 수정하는 이유는크로스 컴파일을 하기 위해선 위 주석문을 지우고 아래를 주석 시켜야 한다.4. 다시 make를 실행해 완료한다.(6) Nachos 실행 및 결과1. cd userprog를 입력해 userprog로 이동 한 후 make depend를 입력한다.2. make를 입력한다.3. ./nachos를 입력해 실행 시킨다.4. 실행 후 사진결과를 보면 userprog를 실행하면 인자가 없어서No threads ready or runnable, and no pending interrupts. 메시지가 나오며../test/halt가 디폴트로 실행된 결과이다. 있다.
REPORT과 목: 커피와바리스타학 교:학 과:학 번:이 름:제 출 일:[한국인의 삶을 바꾼 커피]한국의 첫 번째 커피 애호가는 고종황제였다. 이후, 커피는 70,80년대 다방의 형태에서 최근의 프랜차이즈까지 한국인들에게 친숙하게 다가왔다. 고급 아라비카 원두커피에서 저렴한 로부스타 캔커피까지 모든 세대를 아우르는 커피는 한국에서 누구에게나 ‘커피 한 잔?’ 이라는 말로 관계를 시작할 수 있을 만큼 친숙한 존재다.하지만 지금의 커피 문화가 일반적이었던 것은 아니다. 얼마 전까지 사회에는 외국으로 역수출되고 있는 커피 믹스가 더 익숙한 세대가 많았고, 불과 몇 년 전만 해도 테이크아웃 커피를 들고 다니는 여성을 비하하는 말(스벅녀, 된장녀 등)이 나올 만큼 커피전문점 문화는 우리에게 낯설었다. 원가에 비해 높은 가격에 대한 정당성에 대한 논쟁이 피어올랐고, 2017년 현재, 테이크아웃 커피전문점은 한국 어디에서나 볼 수 있었던 커피자판기를 물리치고 우리 삶의 한 부분으로 녹아들었다.[커피 문화를 바꾼 타이밍]기호품인 커피가 이토록 다양한 형태로 우리 삶의 변화를 가지고 올 수 있었던 원인은 무엇일까? 혹자는 커피 프랜차이즈는 공간 임대업체로서 한국에 적절히 녹아든 것일 뿐, 커피라는 아이템이 차별화된 것은 아니라고 말한다. 하지만 생각해 보면 그 반례가 버젓이 존재함을 알 수 있다. 한국에는 오래 전부터 저렴한 믹스 커피와 담소를 나눌 수 있는 ‘공간’을 함께 제공하는 다방 문화가 존재했다.그렇다면 혹시 커피의 맛에서 큰 차이가 발생한 것이 아닐까? 여기에도 예외 케이스가 존재한다. 믹스커피 맛에 반한 외국인들이 한국 여행을 다녀갈 때 기념품으로 구매해 가는 일이 벌어진 것이다. 저렴한 비용으로 맛있는 커피를 마실 수 있음에도 원두커피 중심의 프랜차이즈가 급성장한 원동력에 대해 고찰하던 중 하나의 현상을 되짚어 볼 수 있었다. 2000년대 한국을 강타했던 ‘웰빙 열풍’이 그 주인공이다.웰빙과 다이어트 열풍이 불며 설탕과 프림에 대한 부정적인 인식이 형성된 사이 그 ‘타이밍’을 놓치지 않고 원두커피가 약진할 수 있었다. 뿐만 아니라 카제인나트륨 이슈가 터지며 믹스 커피에 대해 부정적인 여론이 형성된 것도 원두커피 시장이 성장하는데 큰 도움이 되었을 것이다.[2000년대, 트렌디한 감성을 추구하는 커피전문점]단지, 적절한 타이밍이 맞아 원두커피 시장이 성장할 수 있었던 것일까? 잊어 버릴만하면 보도되는 커피에 대한 ? 정확히는 카페인에 대한 - 부정적인 기사나 연구결과는 (원두)커피와 웰빙 사이의 연결고리를 약해 보이게 한다. 건강에 좋을지, 좋지 않은지에 연연하지 않고 사람들이 커피를 찾게 만드는 것은 ‘트렌디한 감성’이다.스타벅스로 대표되는 글로벌 커피 프랜차이즈의 성장은 커피에 대한 인식을 바꾸어 놓았다. 야근과 피로에 찌든 몸에 주는 각성제로서가 아니라, 멋지고 우아한 분위기를 내는 아이템으로써 기능할 수 있는 배경이 마련된 것이다. 중년의 배나온 아저씨들이 찾는 정적인 다방 대신, 발랄한 청춘들의 아고라(Agora)로 기능하는 커피전문점이 탄생한 것이다.여기에는 90년대 말 전 세계에 히트했던 미국드라마 ‘프렌즈’의 공도 컸다고 본다. 뉴욕 2030세대의 로망을 ‘센트럴 파크’라는 커피숍에서 풀어냄으로써, 커피전문점 문화가 세계에 보편화될 수 있는 토양이 형성되었다. 출근길에, 점심시간에, 퇴근길에 친지들과 가볍게 한 잔 마시며 이야기를 풀어낼 수 있는 펍(Pub)의 기능을 대체한 것이다.문화를 판매하는 커피전문점은 거칠 것 없이 약진했다. 밥값보다 비싼 커피에 대한 뉴스가 나온 것도 이때쯤이다. 하지만 사람들은 김밥 한 줄로 식사를 때울지언정 ‘문화’와 ‘감성’의 아이콘인 커피를 소비하는데 아낌없이 투자했다.[경제위기, 고객의 우선순위를 바꾸다]하지만 경제위기 이후 모든 것이 바뀌었다. 구매력이 줄어들자 문화지출에 대한 부담이 커지며 커피 값에 부담을 느끼게 된 것이다. 이에 대한 시장의 반응은 2가지로 나뉘었다.첫째, 저렴한 테이크아웃 원두커피 전문점의 탄생했다. 임대료를 제외한 원두커피 1잔의 제조원가는 약 770원이다.(출처1) 잔당 1000원~2000원 내외의 저렴한 가격으로 장소를 배제하고 커피에만 집중하는 전략을 구사한 것이다. 일부 커피전문점들은 테이크아웃 가격과 일반 가격을 구분하는 가격 2원화 전략을 구사하기도 했다.둘째, 버블티, 생과일주스 등 대체재가 공급되기 시작했다. 커피를 맛이 아닌 문화로 받아들인 고객들은 상품 자체(커피)에는 충성도가 없었다. 테이크아웃 커피 구매에 메리트를 느끼지 못한 이들은 ‘맛’이나 ‘건강(웰빙)’의 측면에서 더 낫다고 생각되는 상품, 혹은 자신을 차별화하는 상품을 구매하기 시작했다. 특히 ‘차별화’에 주목할 필요가 있다. 원두커피가 비교적 높은 가격에도 문화상품으로써 자리 잡을 수 있었던 원동력은 ‘문화적 차별화’를 제공했기 때문이다. 하지만 저가의 테이크아웃 원두커피 전문점 등이 발생하고 커피가 대중화되면서 문화상품으로써의 가치는 하락했다. 담배나 초콜릿처럼 하나의 대중적 기호품으로 격하된 것이다.
자화상단편소설 비행운은 우울하다. 소설의 모든 내용이 우울하다. 그렇기에 공감한다. 소설 속 주인공들의 비루하고 상처받고 눈물 흘리는 이야기는 우리의 일상을 떠올리게 한다. 대학을 졸업하고 열심히 노력해도 일자리를 구하지 못하는 ‘너의 여름은 어떠니’와‘ 호텔 니약 따’의 주인공 ,그것을 이겨내고 일자리를 구했으나 늘 불안정하고 불만족스러운 삶을 살아가는 ‘큐티클’과 ‘서른’, 중년 하층민의 고단한 처지를 다룬 ‘하루의 축’과 ‘그곳에 밤 여기에 노래’ 에서는 더 처절하고 더 비루하다.비행운은 진부하다. 그렇기에 더욱 공감한다. 반복된 일상의 우울함에 무뎌져 더 이상 우리는 이 이야기들이 신선하고 새롭지 않다. 상황만 다른 우리의 또 다른 일상이다. “너도 자라 내가 되겠지, 겨우 내가 되겠지.” 비행운의 여섯 번째 에피소드 [서른]의 한 대목이다. 하얗게 된 얼굴로 이른 새벽부터 밤까지 오가는 아이들을 보며, 공부를 하다 토를 하고 코피를 쏟는 아이들을 보며 서른 즈음의 글쓴이가 한 말이다. 성공한 사업가는 학생들에게 말한다. 세세한 스팩 따위 상관없으니 큰 꿈을 가지라고. 젊을 때는 잃을게 없으니, 뭘 해도 다시 일어설 수 있으니 패기를 가지라고, 실패해도 경험이 남는다고 말이다. 동의하지 않는다. 우리 젊은이들은 잃을게 너무나도 많다. 실패한 경험은 사치다. 모든 회사에서 나이는 곧 스펙이다. 무슨 경험이 있든 나이를 넘기면 서류조차 내지 못하는 곳이 대다수다. 꿈을 꾸기에는 눈앞에 닥친 것이 너무나도 많고 계산해야 할 것이 너무나도 많다. 이십대에는 내가 뭘 하든 다 과정인 것 같았는데, 이제는 모든 게 결과일 따름인듯해 초조하다는 글쓴이의 말처럼 실패와 경험을 거친 우리는 시시한 어른, 겨우 나란 존재가 되어간다.비행운은 적나라하다. 지나치게 현실적이다. 하지만 노골적이지 않다. 비행운의 다섯 번째 에피소드 [하루의 축]에서는 인천공항에서 청소 일을 하는 50대 여인 기옥이 주인공으로 나온다. “어째서 이렇게 한 가족의 단란이 시시하게 망가지는가 이해할 수 없었다. 가옥 씨의 머리가 빠지기 시작한 것을 그즘 이었다.” 하루의 축의 한 대목이다. 그녀도 평범한 한 가정의 아내이자 엄마였다. 하지만 가정을 돌보지 않고 놀러다니던 남편이 실족한 후 혼자 외동아들을 키우게 되었고 온갖 굳은 일들을 해가며 대학까지 보낸 아들이 절도 폭행죄로 전과자가 되었다. 그 이후 그녀는 매일 매일 삶의 희망을 잃듯 머리카락이 빠지기 시작했다. 보고만 있어도 아프다. 하지만 글에는 좀처럼 감정을 드러내는 단어를 찾아볼 수 없다. 아무리 슬퍼도 괴롭다는 표현을 하지 않는다. 아무리 아파도 아프다라 쓰지 않는다. 아무리 비참해도 초라하다 하지 않는다. 하지만 우리는 말하지 않아도 느낄 수 있다. 글로 표현되지 않은 뻔한 감정은 더욱 강하게 다가온다.
Dialogue Assignment20141922 Dragon20141947 Alex[Dialogue 1]A: Hey Dragon, I need some distraction from this life. So I decided to go for camping for this weekend.D: Wow Camping? Where are you planning to go?A: I’m planning to go to Gapyeong. My dad owns a resort in Gapyeong. Have you been to Gapyeong before?D: Yes, I have. I’ve been to the valley in Gapyeong when I was young.A: Oh really? Did you like it?D: Yes, it was the most beautiful valley I have ever been. I think it’s the best place for camping.A: So, you want to join us?D: Yeah why not. Is there something I need to get before we go?A: Just bring yourself and that will be enough. I’ll take care of everything.D: I wanted to hit the road lately. Just I want to go somewhere out of town and feel fresh.By the way, Have you ever done a barbeque party before?A: Of course I have! I had a barbeque party last winter with my family.It’s one of the happiest memories I have in my life.D: Sounds like you had fun. I’m so looking forward for this weekend. By the way, who else is going with us?A: Maybe Chad. And John might join us too but I’m not sure yet. He’s going to call me later.D: yeah, I will go with you guys.A: Oh wait, Do you think the weather is going to be fine this weekend?D: Hang on, let me check. Oh no, my app says it’s going to rain. But my app can be wrong sometimes. It’s up to you. Do you want to still go?A: Well, Okay, it should be fine. I don’t really mind raining.D: Okay then. I’ll keep you updated. See you soon![Dialogue2]A: What’s good my friend!D: Oh, hey Alex! It’s been a long time. I can’t even remember when was the last time we met.A: It’s been so long! Have you been to the school after we graduate?D: Yes, I have. I went there last Teacher’s day. I was looking for you that day! You didn’t show up. right?A: Yeah I’m so sorry. I was too busy that day.D: It’s okay dude! By the way, I heard that you are dating a new girl!A: Yes, we’ve been dating for about 7 months now.D: So, what is she like?A: She’s good. She’s the best girl I have ever been with.D: Oh really? Is she pretty?A: Of course. She`s the most beautiful girl I’ve ever seen.D: Great. Is she tall? You like tall girls. aren’t you?A: Yeah, she is. She’s the tallest girl I’ve ever seen. So I thought she was a model when I saw her for the first time.D: Wow. I’m really curious. Are you going to show me a picture or what?A: Haha, you will see her later. Wait, you have a girlfriend too. right?D: Oh, now you want to talk about my girlfriend. Yeah, we’ve been together for about 3 months.A: Oh really? Have you ever been to any concert with her? You were into concerts I remember?D: Yeah, I have. Actually, We met in a concert last winter. She’s into concerts too.A: Great! My girlfriend also loves music. She plays piano pretty good.D: Really? That sounds like my girlfriend. Haha, my girlfriend plays piano too. Actually, her major is Piano as well.A: What’s the name of the university she goes?D: Korea Maritime and Ocean University. What’s wrong?A: Oh my got! My girlfriend too! They could know each other. I will ask my girlfriend if she knows her.D: Do you have a picture of her?A: Yeah, it’s on my phone. want to see?D: Oh no! What the hell! Is she really your girlfriend?A: Yes. What’s wrong?D: I’m dating her too! What the hell!A: What?? Are you serious?D: So, she’s a man-eater?A: Well it seems like she is?
Alex: What a surprise!! D! Look who`s here! D: Oh my god! Alex!! It`s been a long time since we last met.Alex: Yes. Long time no see. How have you been? D: I`m doing great. You haven`t changed much.Alex: Really? Neither have you. Ah I just met John. Do you remember him? D: John? Are you talking about John Dowber? The mischievous boy?Alex: Yes. Yes. He has changed a lot. He became a gentleman. D: Oh Really? I really miss him. Where is John now?