[태그:] acarbose

  • Pintos Project 3 한국어 설명서 (design report) – Virtual Memory, Frame table

    목차

    0. Background
    0.1. Memory
    0.1.1. virtual memory
    0.1.2. physical memory
    0.2. pintos virtual memory
    0.2.1. user virtual memory
    0.2.2. Kernel virtual memory
    0.2.3. page fault 발생 원인
    0.3. memory allocation
    0.3.1. page allocator
    0.3.2. block allocator
    0.4. hash table
    0.5. paging

    1. Frame Table
    1.1. Meaning of Frame Table
    1.2. Necessity of Frame Table
    1.3. Current Implementation
    1.4. New Implementation

    2. Lazy loading
    2.1. Meaning of Lazy Loading
    2.2. Necessity of Lazy Loading
    2.3. Current Implementation
    2.4. New Implementation

    3. Supplemental page table
    3.1. Meaning of Supplemental Page Table
    3.2. Necessity of Supplemental Page Table
    3.3. Current Implementation
    3.4. New Implementation

    4. Stack growth
    4.1. Meaning of Stack growth
    4.2. Necessity of Stack growth
    4.3. Current Implementation
    4.4. New Implementation

    5. File memory mapping
    5.1. Meaning of File memory mapping
    5.2. Necessity of File memory mapping
    5.3. Current Implementation
    5.4. New Implementation

    6. Swap table
    6.1. Meaning of Swapping
    6.2. Necessity of Swap table
    6.3. Current Implementation
    6.4. New Implementation

    7. On process termination
    7.1. Necessity of On process termination
    7.2. Current Implementation
    7.3. New Implementation

    본문내용

    0. Background
    1. Memory
    31 12 11 0 31 12 11 0
    +——————-+———–+ +——————-+———–+
    | Page Number | Offset | | Frame Number | Offset |
    +——————-+———–+ +——————-+———–+
    Virtual Address Physical Address
    virtual address (=page)
    32-bit의 address = 20 bit의 frame number + 12 bit의 frame offset
    physical address (=frame)
    32-bit의 address = 20 bit의 frame number + 12 bit의 frame offset
    1.1. virtual memory
    virtual memory는 physical memory를 보조하는 개념
    process가 필요한 data는 virtual memory에서 physical memory로 load해오고, 필요없는 data는 virtual memory (ex : disk) 에 저장함으로써 physical memory 공간 확보
    각 process는 virtual address와 physical address 를 mapping하는 table을 가지고 있어 virtual address로 physical address를 찾아갈 수 있다.
    virtual memory는 page의 형태로 disk에 저장되어 있으며, 필요할 때마다 physical memory로 swap in되어 사용된다.

    출처 : 해피캠퍼스

  • Pintos Project 2 한국어 설명서 (design report) – User Program, System Call

    목차

    0. Analysis
    0.1. Process Execution Procedure
    0.1.1. analysis
    0.2. System Call Procedure
    0.2.1. what is system call
    0.2.2. analysis
    0.3. File System
    0.3.1. what is file descriptor
    0.3.2. analysis

    1. Process terminate messages
    1.1. goal
    1.2. how to solve problems

    2. Argument Passing
    2.1. goal
    2.2. how to solve problems

    3. System Call
    3.1. goal
    3.2. how to solve problems
    3.2.1. data structure
    3.2.2. detailed algorithm
    3.2.3. implement system calls

    4. Denying Writes to Executables
    4.1. goal
    4.2. how to solve problems

    본문내용

    0. Analysis
    project 1에선 kernel에서 실행되는 thread들 위주였다면 project 2에서는 user program을 실행시키는 것이 위주이다. 따라서 project 1에선 alarm clock, priority scheduling, advanced scheduling 등의 코드들이 모두 kernel의 일부였고 해당 코드들을 kernel에서 직접 compile했지만, project 2에선 user program을 이용하여 compile한다. user program을 실행시키기 위하여 구현해야 하는 것은 아래와 같다.
    1. Process terminate messages
    2. Argument passing
    3. System call
    4. Denying writes to executables
    user program은 file system에서 load되고 있고, 많은 system call 구현은 file system에서 다뤄진다.
    0.1. Process Execution Procedure
    0.1.1. analysis
    1. main()
    Process Execution Procedure을 분석하기 위해 먼저 threads/init.c의 main 함수를 보겠다.
    0. Analysis 0.1. Process Execution Procedure
    0.1.1. analysis 0.2. System Call Procedure
    0.2.1. what is system call 0.2.2. analysis 0.3. File System 0.3.1. what is file descriptor 0.3.2. analysis

    출처 : 해피캠퍼스

  • Pintos Project 1 한국어 설명서 (design report) – Alarm clock, Priority Scheduling, Advanced Scheduling

    목차

    0. analysis
    0.1. thread
    0.1.1. struct thread
    0.1.2. thread functions
    – [thread 시작 관련 function]
    – [thread 관리 function]
    – [thread 동작 관련 function]
    – [scheduling function]
    – [timer 관련 function]
    0.1.3. list
    – [list function]
    0.1.4. how to switch thread
    0.2. synchronization
    0.2.1. meaning of synchronization
    0.2.2. disabling interrupts
    0.2.2.1. meaning of disabling interrupts
    0.2.2.2. caution
    0.2.2.3. implement
    0.2.3. semaphore
    0.2.3.1. meaning of semaphore
    0.2.3.2. implementation
    0.2.4. lock
    0.2.4.1. meaning of lock
    0.2.4.2. implementation
    0.2.5. condition
    0.2.5.1. meaning of condition
    0.2.5.2. implementation
    0.2.6. interrupt handling
    0.2.6.1. external interrupt handling

    1. alarm clock
    1.1. current implementation
    1.1.1. timer.c functions
    1.1.2. busy-waiting
    1.2. new implementation

    2. priority scheduling
    2.1. current implementation
    2.2. new implementation
    2.2.1. priority scheduling modification
    2.2.2. synchronization modification
    2.2.3. priority donation modification

    3.advanced scheduling
    3.1. MLFQS
    3.2. Priority scheduling
    3.2.1. ready queue 관리
    3.2.2. priority 관리
    3.2.3. priority 계산
    3.3. fixed-point arithmetic
    3.4. implementation

    본문내용

    0.1. thread
    pintos에서는 thread creation과 thread completion, Round-Robin 방식의 thread switching(simple scheduler)을 이미 구현해 두었다.
    0.1.1. struct thread
    kernel thread의 struct는 “threads/thread.h”에 선언되어 있다.
    thread structure은 4kB page를 차지한다. struct thread는 page of memory의 시작부터 공간을 차지한다. page의 나머지 부분은 thread의 stack을 위해 이용되는데, 이는 end of the page로부터 아래쪽 방향으로 내려가며 진행된다.

    따라서 kernel stack을 위한 공간을 위해 struct thread는 너무 크기가 크면 안 된다. base struct thread는 1kB 미만이어야 한다. 그리고 kernel stack도 너무 크면 안 된다. stack에서 overflow가 발생하면 thread state를 침범할 것이므로 kernel function은 struct와 array에 non-static local variable 같이 너무 많은 공간을 할당하지 않고, malloc()이나 palloc_get_page() 같은 동적 할당 function을 써야 한다.
    [Member of struct thread]
    tid_t tid
    thread identifier를 뜻한다. 각 thread를 분간한다. 현재는 int 자료형에 1부터 numbering되게끔 짜여져 있다.

    출처 : 해피캠퍼스

  • A+성인간호학 실습2 – 외과 실습 open wound 사례연구 보고서, 간호과정 4가지

    목차

    Ⅰ. 서론
    1. 연구의 필요성 및 목적

    Ⅱ. 본론
    1. 문헌고찰
    2. 간호사정
    – 진단적 검사
    – 특수 검사
    – 약물 치료
    – critical pathway

    3. 간호과정
    – 우선순위 간호진단 5개
    – 간호과정 3개

    Ⅲ. 결론

    Ⅳ. 출처

    본문내용

    (연구의 필요성 및 목적)
    첫 정형외과 실습에서 아직 정형외과 수술들과 수술 전,후 간호등에 대해서 잘 모른다는 것을 느껴서 연구를 실시하게 되었다.
    이 연구를 통해서 정형외과 실습을 하면서 잘 몰랐던 수술들과 수술 전, 후 간호 그에 따른 진단과 간호과정에 대해 자료를 찾아보면서 공부하고자 한다.

    Ⅱ. 본론
    (1) 문헌고찰 (질병명, 정의, 원인, 증상, 진단검사, 치료 및 간호-사례대상자를 중심으로 기술)
    *진단명: open wound of knee
    개방형 상처(open wound)
    -정의: 열린 상처(개방상처)는 피부 또는 점막이 찢어져서 바깥쪽으로 열린 상처를 말합니다. 통증과 출혈이 있고 외부의 세균이 피부나 점막 속으로 들어가 감염의 위험이 높은 상처입니다. 열린 상처를 그대로 방치하면 세균에 오염이 되기도 하고 조직이 괴사가 생기기도 합니다.
    상처 치료
    피부는 우리 몸의 보호 층이며, 따라서 기계적 손상이 있는 경우 무결성이 손상되면 박테리아가 상처로 자유롭게 침투 할 수 있습니다.

    출처 : 해피캠퍼스

  • Pintos Project 3 final report – Virtual Memory, Frame table

    목차

    1. frame table
    1.1. Algorithm
    1.2. Data Structure
    1.3. Function

    2. lazy loading
    2.1. Algorithm
    2.2. Function

    3. Supplemental page table
    3.1. Algorithm
    3.2. Data Structure
    3.3. Function

    4. stack growth
    4.1. Algorithm
    4.2. Function

    5. File memory mapping
    5.1. Algorithm
    5.2. Data structure
    5.3. Function

    6. Swap table
    6.1. Algorithm
    6.2. Data structure
    6.3.Function

    7. On process termination
    7.1. Algorithm
    7.2. Function

    8. discussion

    본문내용

    1. frame table
    어떤 page에 frame을 할당하기 위해 frame table을 순회하였을 때
    1. free frame이 존재하는 경우
    해당 frame을 할당하면 된다.
    2. free frame이 존재하지 않는 경우
    다른 frame의 page를 evict하여 새로운 free frame을 만들어야 한다
    이때 page replacement algorithm을 통해
    evict할 frame을 고른 후,
    현재 frame에 참조중인 모든 page table의 reference를 제거하고,
    page에 변화가 있다면 write back이나 swap을 수행한다.
    evict된 frame은 새로운 page를 저장하기 위해 사용된다.
    project 3에서
    frame에서의 eviction을 위해 사용할 page replacement algorithm은 Clock algorithm이다.
    이 알고리즘은
    frame table을 순회하여
    page의 accessed bit이 1인 경우 0으로 바꿔주고,
    page의 accessed bit이 0인 경우 이를 선택한다.
    1.1. Algorithm
    Frame 생성
    Frame 생성을 위한 memory공간을 할당하기 위해 frame_allocate을 호출한다.
    이때, palloc_get_page(PAL_USER) 를 통해 user pool로부터 page를 생성한다.
    page allocation 성공
    생성한 주소 그대로 사용
    page allocation 실패
    free frame을 확보하기 위해 eviction()을 호출한다.
    palloc_get_page()를 다시 호출한다.
    frame을 생성하기 위해 malloc()을 호출한다.
    frame을 frame table에 추가한다.
    Frame 제거
    Frame 제거를 위한 frame_deallocate()를 호출한다.
    Frame table에서 해당 frame을 찾으면,
    page를 해제해주고,
    frame table에서 frame을 제거한다.

    출처 : 해피캠퍼스

  • Pintos Project 2 final report – User Program, System Call

    목차

    1. Process termination message
    1.1. algorithm
    1.2. function

    2. Argument passing

    3. System calls for user process
    3.1. algorithm
    3.2. data structure
    3.3. function

    4. System calls for file manipulation
    4.1. algorithm
    4.2. data structure
    4.3. function

    5. denying writes
    5.1. algorithm
    5.2. function

    6. discussion
    6.1. argument passing 오류
    6.2. bad test 오류
    6.3. multi-oom 오류
    6.4. 결과

    본문내용

    1. Process termination message
    process가 종료될 때마다 process 종료 메세지를 띄워야 한다.
    종료 메세지의 출력 예시와 형식은 아래와 같다.
    printf(“%s: exit(%d\n)”,variable_1, variable_2)
    ex) args-single: exit(0)
    variable_1 : process의 이름
    variable_2 : exit code
    1.1. algorithm
    exit system call을 담당하는 함수를 만들고
    함수 안에서 해당 thread를 종료시키고, 종료 메세지를 출력하도록 한다.
    process가 종료될 때마다 exit system call을 호출한다면
    해당 thread도 종료될 것이고, 종료 메세지도 출력될 것이다.
    1.2. function
    원래 기존의 pintos에서는
    해당 파일의 load에 실패한 경우 thread_exit()을 호출하였다.
    static void
    start_process (void *file_name_)

    <중 략>

    2. Argument passing
    user에 의해 입력된 command는
    프로그램 이름과 함께 부수적으로 붙는 option들이 다양하므로
    이를 모두 인식할 수 있어야 한다.
    그러나 현재 pintos는
    command line에 명령어를 입력하였을 때
    입력된 명령어 전체를 하나의 프로그램 이름으로 인식하도록 구현되어 있으며,
    프로그램 이름과 option들을 구분하여 인식하지 못하는 상태이다.
    따라서 입력된 command line을
    프로그램 이름과 option들로 parsing될 수 있게 수정한다.

    /* userprog/process.c */
    tid_t
    process_execute (const char *file_name)
    {
    char *command_line;
    char *name;
    char *remain;
    tid_t tid;
    // 메모리 할당, 메모리 할당 실패한 경우 함수종료, file_name을 comman
    command_line = palloc_get_page (0);
    if (command_line == NULL)
    return TID_ERROR;
    strlcpy (command_line, file_name, PGSIZE);

    출처 : 해피캠퍼스

  • Pintos Project 1 final report – Alarm clock, Priority Scheduling, Advanced Scheduling

    목차

    1. alarm clock
    1.1. implementation
    1.1.1.data structure
    1.1.2. algorithm
    1.2. discussion

    2. priority scheduling
    2.1. implementation
    2.1.1. data sturcture
    2.1.2. algorithm
    2.2. discussion

    3. advanced scheduling
    3.1. implement
    3.1.1. how to compute priority in advanced scheduling
    3.1.2. data structure
    3.1.3. algorithm
    3.2. discussion

    4. result

    본문내용

    1. alarm clock
    1.1. implementation
    기존의 busy-waiting 방식을 sleep/wake-up 방식으로 변경하는 것은 시스템 자원을 효율적으로 사용하는 데 매우 중요하다. busy-waiting 방식은 프로세서가 일정한 시간동안 아무 작업도 하지 않고 반복적으로 상태를 확인하는 방법으로, 타이머나 조건이 충족될 때까지 CPU가 루프를 반복하며 기다린다. (예를 들어, 알람시계의 경우 지정된 시간이 도달할 때까지 현재 시간을 계속 확인하는 방법이다.) 이로 인해 CPU 사이클을 낭비하게 됨으로써 CPU 자원이 불필요하게 낭비되고, 전력 소비를 증가시킬 수 있다. 반면, sleep/wake-up 방식은 프로세서가 작업을 기다리는 동안 유휴 상태로 전환되어 다른 작업을 수행할 수 있게 한다. 따라서 시스템 효율성을 증가시킬 수 있으며, 특히 임베디드 시스템이나 배터리로 구동되는 장치에서 매우 유용하다. 이를 통해 불필요한 자원 낭비를 줄이고, 시스템의 응답성을 높일 수 있다.

    1.1.1.data structure
    struct thread에 wakeup 변수 추가
    busy-waiting 방식과 sleep/wake-up 방식의 가장 큰 차이점은 thread가 깨어야 할 시간에만 깨는지, 아니면 깨지 않아도 될 시간에도 깨워서 시간을 확인하는 지다. 그러므로 sleep/wakeup 방식을 구현하기 위해 각 thread가 깨어야 할 시간을 저장하는 변수를 thread struct 안에 추가해 주는 것이 좋다. wakeup 변수는 현재 thread가 깨어나야 하는 ticks 값을 저장한다.

    출처 : 해피캠퍼스

  • A+ 성인간호학실습 tibia fracture(fx) casestudy 경골 골절 케이스스터디 (간호진단5,간호과정2개)

    목차

    Ⅰ. 서 론

    Ⅱ. 이론과 실무연계
    1. 원인
    2. 증상
    3. 진단
    4. 치료
    5. 간호

    Ⅲ. 성인간호 사정도구
    1. 일반정보
    2. 입원상태 및 병력
    3. 건강정보
    4. 신체기관 문진
    5. 정신적, 정서적 상태
    6. 대상자 사정내용
    7. 임상병리검사
    8. X-ray 및 특수검사
    9. 치료 및 간호
    10. 간호과정

    Ⅳ. 결 론
    잘 작성한 내용, 부족한 내용, 소감 등

    Ⅴ. 참고문헌

    본문내용

    I. 서론-연구의 필요성과 선정 이유
    골절의 많은 경우 강한 외부의 힘이 작용하여 뼈가 부분적으로 또는 완전히 엇나가 뼈의 연속성이 소실된 상태이다. 우리 몸에는 크고 작은 뼈가 200여개 있는데, 근육과 힘줄로 서로 단단히 연결되어 뼈대를 이루고 있고, 뼈는 중요한 장기들을 보호하고, 혈액을 생성하며, 이동을 가능하게 하는 중요한 구조물이다. 그렇기 때문에 뼈의 연속성이 완전하게 혹은 불완전하게 소실된 상태인 골절은 어느 연령대에서나 발생할 수 있어 예방,치료,재활이 매우 중요하다.
    병동에서 실습하면서 OS 환자분들을 많이 볼 수 있었는데 고령의 대상자분께서 자택에서 일상생활 중 slip down으로 골절이 생겼다. 이는 우리 일상에서 매우 흔하고 남녀노소 불문하고 항상 조심해야 하는 부분이다. 나 또한 어렸을 때 화장실에서 silp down하여 Lt. fx로 석고붕대까지 했던 경험이 있던지라 더욱 관심이 갔었다. 이렇게 흔하지만 위험한 골절에 대해 공부하기 위해 이론조사 및 간호문제를 조사해보았다.

    II. 이론과 실무연계
    진단명
    Fracture of distal tibia and fibular epiphysis closed
    원위 경골 골절 및 섬유성 골단 폐쇄
    정의/병리
    *
    골절 : 외부적 힘에 의하여 골 조직의 연속성이 파괴된 상태.
    골절로 인한 손상의 범위 : 경미한 좌상~심한 골절로 인해 불구 야기(다양함).
    *경골 및 비골 골절은 흔한 골절 중 하나.
    경골 : 피부 직하에 위치, 특히 내축부의 연부조직 및 골막이 두껍지 않아
    손상 시 개방성 골절이 되기 쉬움.
    *광범위한 연부 조직 및 골막 손상 시 감염에 의한 골수염 및 불유합 등의 심한 합병증 초래.
    *조기 골유합과 기능 회복 위해 많은 치료 방법 시도.
    ⤷비수술적 방법과 수술적 방법 간의 선택은 각 장단점에 비추어 현재에도 널리 혼합하여 이용.

    출처 : 해피캠퍼스

  • NS casestudy- microdiscectomy

    목차

    I. 문헌고찰 3
    1. 정의 및 원인 3
    2. 증상 3
    3. 진단검사 4
    4. 치료 4

    II. 간호사정 5
    1. 간호정보 조사지 5
    2. 진단검사 기록지 8
    3. 투약기록지 10

    III. 간호과정 12
    1. 간호진단#1 12
    2. 간호진단#2 14
    3. 간호진단#3 18

    IV. 참고문헌 20

    본문내용

    1. 정의 및 원인
    추간판의 손상 및 탈출로 염증이 생긴 신경근에 기계적 압박이 추가되어 경추, 흉추 혹은 요추부 축성 통증 및 신경근 자극 증상을 유발하는 질환이다. 추간판은 퇴행성 변화를 필연적으로 겪게 되고, 10대 후반이나 20대 초반부터 이런 과정들이 나타날 수 있다. 추간판이 퇴행됨에 따라 추간판의 가장자리를 둘러싸고 있는 섬유륜에 균열(fissure)이 발생하게 되고 추간판 내부의 수핵이 척추뼈의 경계 넘어로 탈출될 수 있다. 추간판의 퇴행을 가속화시키는 몇 가지 요인들이 알려져 있는데, 이를 예방하기 위해 요추 전만 유지의 중요성이 날로 강조되고 있다.
    추간판에 가해지는 하중을 효율적으로 분산시키기 위해 정상적으로 경추 및 요추에 존재하는 전만 곡선이 무너지는 경우, 즉 목이나 허리가 굴곡된 자세 혹은 동작을 장기간 취할 경우, 추간판에 가해지는 압력이 증가하여 손상이 가속화 된다. 이외에 유전성도 추간판 퇴행에 중요한 인자로 알려져 있다.

    2. 증상
    요추부 추간판 탈출증 환자의 가장 두드러진 증상은 요통과 함께 다리가 아프고 저린 방사통이다. 탈출된 추간판이 신경근을 자극하게 되어 신경근이 분포하는 다리에 감각 이상이 초래된다. 제5 요추 신경근이 자극되면 안쪽 발등에 감각 이상을 호소하고, 제1 천추 신경근이 자극되면 발등의 외측에 감각 이상을 호소한다. 대개 감각 저하나 무감각을 호소하지만 통각 과민으로도 나타난다. 근력 또한 약해져서 제5 신경근 이환 때에는 족부 신전근이 쇠약해지고 이 때는 발뒤꿈치로 걷는 것이 어려워진다. 드문 경우이나, 돌출된 수핵이 크고 중앙에 위치한 경우 대소변 기능이나 성기능 장애 및 하지 마비가 올 수 있다.

    출처 : 해피캠퍼스

  • 정형외과 논문 요약 2개(고관절 골절 환자 욕창, 골관절염/류마티스관절염)

    목차

    1. 서론(연구의 필요성, 연구 목적)
    2. 연구방법(연구 설계, 연구 대상, 연구 도구, 자료 수집 기간, 자료분석방법, 연구의 윤리적 고려)
    3. 연구 결과
    4. 논의
    5. 결론과 제언
    6. 느낀점

    본문내용

    논문 제목
    고관절 골절로 입원한 노인 환자의 욕창 발생 위험 요인
    연구자
    이순진, 정재심, 임경춘, 박은영, 김혜연
    학술지명
    Journal of Korean Biological Nursing Science 2019
    KEY WORD
    노인, 욕창, 골절, 고관절
    논문 요약
    1. 서론
    1)연구의 필요성
    -고관절 골절로 수술을 위해 입원한 욕창 고위험군인 노인환자의 욕창 발생 현황과 관련 위험 요인을 파악하여 고관절 골절 환자의 욕창 예방을 위한 구체적인 간호 중재 개발의 기초 자료로 활용하고자 시도되었다.
    2) 연구 목적
    -본 연구의 목적은 고관절 골절로 수술받기 위해 입원한 노인 환자를 대상으로 입원 당시부터 퇴원 시까지 욕창 발생률과 욕창 발생 위험요인을 조사하기 위한 연구이다.
    -목적 1. 고관절 골절로 입원한 노인 환자들의 욕창 발생률을 파악한다.

    출처 : 해피캠퍼스