'전체보기'에 해당되는 글 86건

  1. 2012.03.21 DRM(digital Rights Management) by 초상큼발랄 3
  2. 2012.02.07 PPT,EXCEL 창 여러개 띄우기 by 초상큼발랄
  3. 2012.01.18 vi 명령어 by 초상큼발랄
  4. 2012.01.13 Compiler by 초상큼발랄
  5. 2012.01.13 Variable by 초상큼발랄 1
  6. 2011.10.14 2010 ITRC 워크샵 by 초상큼발랄
  7. 2011.10.14 윈 7 단축기 by 초상큼발랄 1
  8. 2011.04.28 Ubuntu 접속시 느림 현상 by 초상큼발랄
  9. 2011.03.11 컴퓨터 구조론 by 초상큼발랄
  10. 2011.03.11 운영체제 by 초상큼발랄 2
DRM 기술
1) 암호화 기술
컨텐츠 암호화 기술: 대체로 128 비트 AES 알고리즘 사용 추세

2) 키분배 기술
1. 대칭키 방식
2. 공개키 방식

3) 키관리 기술
1. Centralized
2. Enveloping

4) Packager(패키저)
1. Pre-packaging
2. on-the-fly Packaging

5) Secure Container
컨텐츠 + 메타데이타 패키징되어 있는 것
배포방법 
 1. 온라인(다운로드, 스트리밍)
 2. 오프라인(CD/DVD)
 3. Superdistribution

6) 객체표현방식
1. DOI(digital object Identifier)
2. URI (Uniform resourece Identifier)

7) 부가정보

8) 권한 표현

9) 권한 제어
Posted by 초상큼발랄
l

 

MS Office 2007 여러개 창 띄우기

ppcore.dll 파일을

"C:\Program Files\Microsoft Ofiice\Office 12" 위치에 복사

기존의 ppcore.dll 파일은 복원을 위해 삭제말고 이름 변경 강추



'Education > ETC_work' 카테고리의 다른 글

요일 프로그램  (2) 2009.10.13
Posted by 초상큼발랄
l


1. 파일 전체 문자 치환 명령어

:%s/이전문자/치환문자/g

2. 주석처리

V로 비주얼 블록 선택한 다음에, :norm i//

해제 :norm xx

3. 파일명, 상태, 현재 줄번호, 상대적인 위치등을 출력

^G

'Education > Linux Kernel' 카테고리의 다른 글

Ubuntu 접속시 느림 현상  (0) 2011.04.28
우분투 커널 컴파일  (0) 2011.03.10
vi 명령어 모음  (1) 2011.01.28
우분투 vi editor 세팅  (0) 2010.08.05
우분투 커널 소스 & 컴파일  (0) 2010.08.04
Posted by 초상큼발랄
l

Compiler

Education/C++ programming 2012. 1. 13. 11:28

 
  1. 컴파일러(Compiler)

    • 컴퓨터가 이해할 수 있는 기계어 코드로 변역해주는 역할

    • 컴파일 프로그램은 대개 디스트에 저장,

    • 컴파일러는 실행 시에 모든 문장을 먼저 구문적으로 하나씩 분해

    • 다른 문장을 참조하는 경우 그 문장이 정확하게 참조될 수 있도록 여러번의 연속적인 상태에서 결과코드 생성

    • 원시프로그램(Source program)을 기계어(Machine language)로 변환시켜 목적프로그램(Object program)으로 번역해주는 특수한 프로그램

      • 목적프로그램(Object program) : 프로세서가 한 번에 한 명령씩 처리하거나 또는 실행시킬 수 있는 기계코드

    • 목적파일을 실행파일로 바꾸기 위한 처리

      • 실행파일이 운영체제의 요건에 맞도록 형태를 바꿈

      • 스타트업(StartUp)이라는 추가코드 가져와야 함

      • 링크(Link) : 목적파일에 실행파일로 만드는 동작

      • 링커(Linker) : 링크를 해주는 프로그램

    • 프로그램 작성되는 과정

      • 소스파일은 컴파일러에 의해 컴파일되어 목적파일 됨

      • 목적파일은 링커에 의해 링크되어 최종적으로 실행파일 됨

        [소스코드] --컴파일--> [목적파일] --링커--> [실행파일] 


    • 빌드(Build) : 컴파일과 링크를 통해 실행파일을 만드는 과정

    • 소스파일을 번역하여 곧바로 실행파일을 만들지 않고 목적파일을 거치는 이유

      • 여러개의 소스를 합쳐서 하나의 실행파일 생성때문임

    • 각 소스파일의 명령을 번역한 기계 코드를 가진 목적 파일의 연결하여 하나의 실행파일 생성

    • 링크단계에서 이미 만들어진 라이브러리도 결합


  1. 인터프리터(Interpreter)

    • 원시코드 명령문들을 한 번에 한 줄씩 읽어들여서 실행하는 프로그램

    • 원시프로그램 문장들이 입력되면 인터프리터는 문장들의 기능을 정의하고 그 기능대로 수행됨

    • 컴퓨터의 주기억장치에 저장된 프로그램이나 또는 많은 프로그램에서는 ROM 형태로 되어있음

    • 목적프로그램에 의해서 수행되는 것보다 프로그램의 수행속도가 훨씬 느림

      • 각 명령들을 매번 통역해야하기 때문임


  1. 컴파일러와 인터프리터의 차이점

    • 실행

      • 컴파일러

원시 프로그램 -> 컴파일러 -> 목적 프로그램

      • 인터프리터

원시 프로그램-> 인터프리터 -> 실행 명령문

    • 프로그램 수행 속도

      • 컴파일러

        • 번역시간은 조금 걸리지만 수행속도 빠름

          • 프로그램 단위로 프로그램 전체를 함께 번역하고 함께 수행

      • 인터프리터

        • 수행속도 느림

          • 한 줄씩 한 줄씩 번역하고 수행

        • CPU 사용 시간 낭비

    • 메모리 할당

      • 컴파일러

        • 메모리를 많이 사용

          • 프로그램을 번역한 뒤, 번역된 기계어를 저장하기 위해 메모리 사용

      • 인터프리터

        • 메모리를 사용하지 않음

          • 프로그램을 한 줄씩 번역하고 곧바로 수행하므로 메모리 사용안함

    • 프로그램 저장 위치

      • 컴파일러

        • 디스크에 저장

      • 인터프리터

        • ROM에 저장

    • 사용분야

      • 컴파일러

        • 실행 시간의 효율성을 중하는 프로그래밍 언어

      • 인터프리터

        • 사용자의 융통성을 중시하는 프로그래밍 언어

    • 정리

비교단위

컴파일러

인터프리터

번역단위

프로그램 단위 번역

명령 줄 단위로 번역

수행과정

함께 번역, 함께 수행

줄 단위로 변역 수행

목적프로그램

번역 후 저장을 위해 필요

바로 수행하므로 불필요

효율성

효율성 좋음

효율성 떨어짐

기억장소

많이 필요

적게 필요



'Education > C++ programming' 카테고리의 다른 글

Variable  (1) 2012.01.13
리눅스 c++ 컴파일  (2) 2009.11.24
Triangle & Rectangle program code  (0) 2009.11.24
피보나치 수열  (2) 2009.11.24
Posted by 초상큼발랄
l

Variable

Education/C++ programming 2012. 1. 13. 11:16

 
  1. 변수(Variable)

    • 전역변수(Global variable)

      • 선언 위치 : 함수 바깥에서 선언

      • 통용 범위 : 프로그램 전체가 공유

        • 선언된 위치 이후에는 어디서든지 이 변수를 사용 가능

      • 파괴 시기 : 프로그램과 동일

        • 실행 직후에 생성되어 프로그램이 실행되는 동안에는 계속 메모리를 차지하고 있으며 프로그램이 종료되면 파괴됨

      • 생성되는 기억 장소 : 정적 데이터 영역

        • 한번 정해진 메모리 위치에 계속 남아 있어야하므로 정적 데이터 영역에 생성

        • 정적 데이터 영역 (페이지 참조)

          • 프로그램 코드 바로 다음에 위치하는 실행 파일의 한 부분으로 프로그램이 실행될 때 메모리롤 로드되어 실행 중에 계속 유지

      • 초기화 : 0 으로 초기화

        • 별도의 초기식이 없더라도 0으로 초기화

        • 초기화와 소멸은 임의의 순서대로 이뤄짐

    • 지역변수(Local variable)

      • 선언 위치 : 함수 내부에서 선언

      • 통용 범위 : 자신이 선언된 함수

        • 자신이 선언된 함수에 소속되어 있기 때문에 함수 외부에서는 이 변수 사용 불가

      • 파괴 시기 : 변수가 선언된 특정 함수 내부 종료

        • 특정 함수 내부에서만 사용되므로 함수가 실행 중일때만 메모리를 차지

        • 특정 함수가 종료가 되면 지역변수도 함께 파괴

      • 생성되는 기억 장소 : 스택(Stack)

        • 프로그램 실행중에 생성, 파괴를 반복하므로 스택에 생성

        • 스택에 생성되기 때문에 통용 범위가 국한되고 종료되면 같이 사라짐

        • 스택(Stack)

          • 지역변수, 인수, 함수 실행 후 돌아갈 번지 등이 스택에 생성되었다가 사라졌다가를 반복

      • 초기화 : 초기화되지 않음

        • 별도의 초기식이 없을 경우 초기화되지 않음

        • 초기값을 명시적으로 지정

        • 지역변수가 생성된 스택 위치의 값이 그대로 출력

        • 스택에 어떠한 값이 들어있는지 예측할 수 없는 쓰레기값이 존재

      • 장점

        • 함수의 독립성 높임

        • 디버깅 효울 향상

        • 메모리 절약

        • 재귀 호출이나 상호 호출 같은 특별한 기법에서 필요


  1. 정적(Static)

    • 정적 변수(Static variable)

      • 기억장소는 전역적이고 통용범위는 지역적인 정적 변수

        • 선언 위치 : 함수의 선두

        • 통용 범위 : 함수 내부

        • 생성되는 기억 장소 : 정적 데이터 영역

        • 초기화 : 0 으로 초기화

          • 단 한번의 초기화

          • 정적 변수가 선언된 함수가 여러번 호출되더라도 초기화는 프로그램 생성할 때 한번만 초기화

    • 정적 함수(Static method)

      • 기억장소는 전역적이고 통용범위는 지역적인 정적 함수

      • 해당함수는 현재 파일 내에서만 사용

        • Internal linkage : 정의된 파일 내에서만 사용 가능

      • extern 키워드를 사용하더라도 외부 파일에서 해당변수 참조 불가능


  1. 외부 변수(External variable)

    • 외부 변수(External variable)

      • 함수의 어느 곳에서든지 선언될 수 있으며 프로그램의 어느 부분에서 사용될수 있는 변수

      • 선언된 이후 모든 함수에서 사용할 수 있는 변수

      • 초기화 : 0으로 초기화

      • 주로 파일간에 변수를 공유할 목적으로 이용


  1. 레지스터(Register)

    • 레지스터(Register)

      • CPU를 구성하는 부품 중 하나

      • CPU가 데이터를 처리하기 위해 사용되는 임시 작업장

      • 속도는 매우 빠름

      • 크기 : CPU의 비트수를 결정하는 중요한 기준

    • 레지스터 변수(Register variable)

      • 저장할 수 있는 변수 타입

        • int, unsigned, 포인터 형 등의 32비트형(32비트 일 경우)

      • 레지스터 변수는 두 개까지만 선언 가능

        • 만약 세 개 이상의 레지스터형 변수 선언시, 최초 두개의 레지스터 변수만 레지스터형이 되고 나머진 지역변수로 됨

        • CPU의 레지스터 개수가 많지 않기 때문에 레지스터형 변수 2개만 선언

      • 레지스터 변수는 지역변수에만 지정 가능

        • 레지스터는 한정된 자원이기 때문임

      • 빠른 속도를 얻기 위해 레지스터 변수를 사용

      • 대규모의 루프를 돌린다거나 할 때, 루프 제어 변수를 레지스터형으로 선언

        • 이 변수의 읽기, 증감 속도가 빨라지거나 전체 루프의 실행속도 빨라짐

      • & 연산자 사용 불가

        • 레지스터형 변수는 메모리에 생성되는 것이 아니기 때문에 사용 불가

        • CPU 내부에 있기 때문에 번지를 가지지 않으므로 &연산자로 이 변수의 메모리 주소 조사 불가능

      • * 연산자 사용 가능


  1. 프로그램(Program)

    • 프로그램 구성(Code, Data, Heap, Stack register)

      • 코드(Code)

        • 프로그램의 코드 자체를 구성하는 명령이나 기계어 명령이 존재

        • read-only 권한이므로 이곳에 데이터를 쓰려면 access violation 일어남

        • CPU가 읽어 들여 수행하므로 text라 부름

      • 데이타(Data)

        • 전역변수, 정적변수, 초기화된 배열과 그 구조들이 저장되는 영역

        • 프로그램이 시작될때 생성되고 프로그램이 종료 될 때 시스템에 반환

      • (Heap)

        • 프로그래머가 필요에 의해 동적으로 할당하는 메모리가 위치하는 영역

        • C++(또는 JAVA)에서 new, C에서는 malloc으로 할당

        • C 또는 C++에서는 할당된 메모리 해제 필수

        • JAVA에서는 자동으로 가비지콜렉션(Garbage collector)에 의해 자동 해제

        • 프로그램은 기본적으로 1MB 크기의 힙 영역을 할당

      • 스택(Stack)

        • 지역변수, 매개변수 및 복귀번지 등등 저장되는 영역

        • 함수 호출시 스택 영역에 생성되고 사용된 후 시스템에 반환

        • 함수 인자(Argument)를 보낼때는 인수를 역순으로 보낸 뒤 복귀 번지를 저장 → 선입후출(First In Last Out)

        • 쓰레드(Thread) 1개씩 생성

        • 기본 크기는 1MB이며, 용량 초과시 오버플로우(Stack overflow)발생

    • 코드, 데이타, 힙 영역은 하위 메모리 부터 할당

      • 데이타 영역 : 컴파일 타임(compile-time) 때 결정

        • compile-time에 데이터 영역 및 스택의 크기를 계산해서 필요한 메모리 공간의 정보를 파일에 함께 갖음

      • 힙 영역 : 런타임(run time)시 요구할 때마다 사용

    • 스택 영역은 상위 메모리 부터 할당

'Education > C++ programming' 카테고리의 다른 글

Compiler  (0) 2012.01.13
리눅스 c++ 컴파일  (2) 2009.11.24
Triangle & Rectangle program code  (0) 2009.11.24
피보나치 수열  (2) 2009.11.24
Posted by 초상큼발랄
l

2010 ITRC 워크샵

Photo 2011. 10. 14. 15:17
2010 년 10월 1일 ~2일
강원도 강릉 선 크루저 리조트


들어가는 입구




연구실 후배와 산책 중

'Photo' 카테고리의 다른 글

50  (0) 2010.08.04
제주도 원앙계곡  (2) 2010.07.08
돈내코 유원지  (2) 2010.07.04
진주식당  (0) 2010.07.04
제주 쌍둥이 횟집  (0) 2010.07.04
Posted by 초상큼발랄
l

윈 7 단축기

ETC 2011. 10. 14. 14:52

[창 관리 / 일반 단축키]

Win + ↑ 사용중인 창을 최대화
Win + ↓ 사용중인 창을 이전 크기 또는 최소화
Win + ← 사용중인 창을 스크린 왼쪽 사이드로 최대화
Win + → 사용중인 창을 스크린 오른쪽 사이드로 최대화
Win + Home 사용중인 창만 남기고 모든 창을 최소화
Win + Space 모든 창을 투명화 시켜 바탕화면을 볼 수 있음 (에어로 피크 기능)
Win + Pause/Break 시스템 속성 대화상자 표시 
Win + Tab 플립 3D (Win 키를 누른 채로 계속 탭을 눌러 창 전환) 
Win + Shift + Tab 플립 3D 역방향으로 회전
Ctrl + Win + Tab 플립 3D 고정 모드로 실행 (Esc 키로 취소)
Win + D 바탕화면 보기 / 복구
Win + E 탐색기 열기
Win + F 검색 
Win + G 가젯을 차례로 선택 
Win + M 모든 창 최소화 
Win + Shift + M 최소화 된 창 복원 
Win + P 프리젠테이션 디스플레이 모드 선택 
Win + R 실행 대화 상자 열기
Win + X 윈도우 모바일 센터 실행 
Win + = 돋보기 
Win + [+/-] 돋보기 확대/축소 
Win + Shift + ↑ 사용중인 창을 수직으로 최대화 
Win + Shift + ↓ 사용중인 창을 이전 세로 크기로 복구 
Win + Shift + ← 사용중인 창을 이전 모니터로 이동 
Win + Shift + → 사용중인 창을 다음 모니터로 이동 
Ctrl + Shift + Esc 작업 관리자 실행 
Alt + F4 사용중인 창 닫기 
Ctrl + F4 동시에 여러 문서를 열 수 있는 프로그램에서 활성 문서 닫기 
Alt + Tab 활성 프로그램 전환 (Alt 키를 누른 채로 계속 탭을 눌러 창 전환) 
Alt + Shift + Tab 활성 프로그램 역방향으로 전환 
Ctrl + Alt + Tab 활성 프로그램 전환을 고정 모드로 실행 
Alt + Esc 프로그램을 열린 순서대로 선택 
Ctrl + Esc 또는 Win 시작 메뉴 열기 

[탐색기 단축키]
Alt + ← 뒤로 이동 
Alt + → 앞으로 이동
Alt + ↑ 상위 디렉토리로 이동 
Alt + Enter 선택한 파일/폴더의 속성 대화상자 열기 
Alt + D 주소표시줄로 포커스 이동 
Alt + P 미리 보기 창 보이기 / 감추기
Ctrl + E 또는 F3 검색 상자 선택
Ctrl + N 새 창 열기
Ctrl + Shift + N 새 폴더 만들기
Ctrl + 마우스휠 보기 모드를 아주 큰 아이콘, 큰 아이콘, 보통 아이콘, 작은 아이콘, 간단히, 자세히, 나란히 보기, 내용 순으로 변경
Num Lock + * 선택한 폴더의 모든 하위 폴더를 표시
Num Lock + + 선택한 폴더의 내용 표시
Num Lock + - 선택한 폴더 축소
F2 이름 바꾸기
F4 주소표시줄 목록 표시
F5 새로 고침
F10 메뉴 도구 표시
F11 창 최대화 또는 복구

[작업표시줄 단축키]

Win + 숫자 작업표시줄에 고정된 프로그램을 활성화 또는 구동시킴 (왼쪽부터 순서대로 1,2,3..) 
Win + Alt + 숫자 작업표시줄에 고정된 프로그램의 점프리스트를 열어줌 (왼쪽부터 순서대로 1,2,3..) 
Win + Ctrl + 숫자 작업표시줄에 고정된 프로그램의 열린 창을 순서대로 보여줌 (IE 또는 워드처럼 복수의 창이 실행되는 프로그램에 적용되고 왼쪽부터 순서대로 1,2,3..)
Win + Shift + 숫자 작업표시줄에 고정된 프로그램의 새 창(인스턴스) 열기 (왼쪽부터 순서대로 1,2,3..)
Win + B 포커스를 작업표시줄 오른쪽의 시스템 알림 영역으로 이동 (이후 화살표키로 이동)
Win + T 작업표시줄의 프로그램 썸네일을 순서대로 볼 수 있음 (이후 화살표키로 이동)
Ctrl + 아이콘 클릭 작업표시줄에 고정된 프로그램의 열린 창을 순서대로 보여줌 (IE 또는 워드처럼 복수의 창이 실행되는 프로그램에 적용)
Shift + 아이콘 클릭 클릭한 프로그램의 새 창(인스턴스) 열기
아이콘 미들 클릭 클릭한 프로그램의 새 창(인스턴스) 열기
Ctrl + Shift + 아이콘 클릭 관리자 권한으로 클릭한 프로그램의 새 창(인스턴스) 열기

[윈도우 7 로그인 / 로그 아웃]

Win + → + Enter 시스템 종료
Win + → + → + R 시스템 다시 시작
Win + → + → + S 시스템 절전
Win + → + → + W 시스템 사용자 전환
Win + → + → + L 시스템 로그오프
Win + L 시스템 잠금
(시스템 잠금 단축키 외에는 모두 키보드의 키를 순서대로 눌러서 실행


참고 :: http://dikafryo.kr/?page=4

'ETC' 카테고리의 다른 글

spell 펌방지 해제  (0) 2010.07.07
디자이어 동영상 인코딩  (0) 2010.07.07
GMail notifier  (2) 2010.07.06
Posted by 초상큼발랄
l

우분투의 SSH 서버 연결 시 느릴 경우

1. /etc/ssh/sshd_config 파일
2. "UsePAM yes"으로 된 부분을 찾아서 주석 처리
3. SSH를 재시작

'Education > Linux Kernel' 카테고리의 다른 글

vi 명령어  (0) 2012.01.18
우분투 커널 컴파일  (0) 2011.03.10
vi 명령어 모음  (1) 2011.01.28
우분투 vi editor 세팅  (0) 2010.08.05
우분투 커널 소스 & 컴파일  (0) 2010.08.04
Posted by 초상큼발랄
l
1. 다음 각 설명에 해당하는 것의 번호를 모두 써라.
    (1) Ideal CPI를 줄이는 것들은?
Software pipelining, Superscalar
    (2) Data Hazard stall을 줄이는 것들은?
Software pipelining, Compiler speculation
    (3) Control Hazard stall을 줄이는 것들은?
Compiler speculation, Branch prediction, Loop unrolling
2. Scoreboard에서
    (1) 1st stage(ID1)에서 stall되는 경우 두 가지는?
Structual Hazard 나 WAW hazard 발생할 경우 
    (2) 2nd stage(ID2)에서 stall되는 경우는?
Data Hazard가 발생할 경우
3. (1) Coarse-grained multithreading은 fine-grained multithreading과 어떻게 다른가?
Fine-grained multithreading : 각 명령어 마다 스레드를 교체
                             여러 스레드는 인터리빙 방식으로 실행
Coarse-grained multithreading :  L2 캐시 미스와 같이 오랜 시간이 걸리는 긴 스톨의 
                                           경우에만 발생
   (2) Coarse-grained multithreading의 장점과 단점을 설명하라.
- 장점: 빠른 스레드 스위칭을 구현할 필요를 덜어준다.
          각 스레드의 실행 지연 시간도 줄여준다.
- 단점: 파이프라인 시작 오버해드가 크기때문에 짧은 스톨에서 처리속도 저하를 극복할 수 있는 능력을 제한한다.
  (3) Fine-grained multithreading과 simultaneous multithreading의 차이점은?
Fine-grained multithreading은 한 클럭 사이클에 대하여 하나의 스레드만 명령을 이슈하지만 Simultaneous multithreading은 한 클럭 사이클에 대하여 여러 스레드가 명령을 이슈한다
4. MSI Writeback Invalidation Snoop-based cache coherence protocol에서
   (1) Shared 상태인 block을 processor가 요청해서 write hit인 된 경우 이 block은 어떤 상태가 되는가?
Modified
   (2) 그 외에 이 cache의 controller가 하는 일은? 
           
   (3) 이 때 이 block을 가지고 있는 다른 cache controller(s)는 어떤 동작을 하며, 이 block을 어떤 상태로 만드는가?

   (4) Update protocol이라면 (3)이 어떻게 달라지겠는가?

5. Cache miss의 종류 4 가지를 쓰고, 각각이 발생하는 원인을 서술하라.
A. Compulsory miss( 강제 미스)
    블록에 대한 처음 엑세스는 캐시에서 발견할 수 없다.
    왜냐하면 블록이 먼저 캐시로 인출되어야 하기 때문이다.
B. Capacity miss(용량 미스)
    만약에 캐시가 프로그램의 실행시간 동안 모든 블록을 갖고 있을수 없다면(강제미스에 추가하여) 용량 미스가 발생된다. 왜냐하면 한번 인출된 블록이 교체된 후 다시 인출되어야 하기 때문이다.
C. Conflict miss(충돌 미스)
   블록 배치 방식이 완전 연관 방식이 아닐 경우( 강제미스와 용량미스에 추가하여) 충돌미스가 발생한다. 왜냐하면 충돌된 블럭들이 같은 집합에 사상되면 이 블록은 교체된 후에 나중에 다시 인출되기 때문이다.
D. Coherence miss(일관성 미스)
    멀티프로세스에서 여러 캐시의 내용에 대한 일관성을 유지하기 위하여 캐시 플러시(flush)에 의해 발생되는 미스이다.
 

6. Cache의 miss rate를 낮추기 위한 방법 5 가지를 열거하고, 각각은 위 6번 문제의 miss 중 어느 miss를 줄이는지 써라.

A. 블럭크기를 크게한다.(Compulsory)
B. High Associativity(Conflict)
C. Victim Caches(Conflict)
D. Pseudo Associative Caches
E. Hardware Prefetching of Instructions and Data(Compulsory)
F. Software Prefetching of Data
G. Compiler Optimization(Conflict)
H. Skew Associative Cache(Conflict)
I. Large Cache(Capacity)


'Education > Operating System' 카테고리의 다른 글

운영체제  (2) 2011.03.11
이벤트 드리븐  (0) 2010.06.28
스레드 컨텍스트 스위치 시점 알 수 있는 방법  (0) 2010.06.28
geekos  (3) 2010.06.27
chapter 7. Memory  (2) 2009.12.11
Posted by 초상큼발랄
l

1. Explain the differences between Preemptive Scheduling and Non-Preemptive Scheduling. What are the pros and cons of those?

A. Preemtive Scheduling(선점형 스케줄링) 

- 어떤 스레드가 CPU를 사용하고 있는 동안 다른 스레드에 의해 선점당하는 스케줄링 방식
- 장점: 우선순위가 높은 프로세스가 먼저 수행되어야 할 때 유용
           대화식 시분할 시스템이나 실시간 시스템에 유용
- 단점: 프로세스간에 문맥 교환이 자주 발생하기때문에 이로 인해 오버헤드가 크다.

B. Non-Preemtive Scheduling(비선점형 스케줄링)

- 어떤 스레드가 CPU 사용권을 다른 스레드에게 이양한 후에 다른 스레드가 그 CPU를 사용할 수 있게 되는 방식
- 프로세스가 일단 실행 상태(Running State)에 진입하게 되면 종료되거나 비자발적으로 CPU를 놓을 때까지는 CPU를 빼앗기지 않는다.
- 장점: 모든 프로세스들에 대한 공정한 요구처리가 가능하다.
           응답시간 예측이 용이하다.
- 단점: 짧은 작업이 긴 작업을 기다리는 경우가 초래한다.

2. Explain the Virtual Memory? What are the benefits of that?

- 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능한 기법으로 애플리케이션이 요구하는 메모리와 하드웨어 메모리 관리 유닛(MMU) 사이에 논리적인 계층을 두어 동작한다.
- 각 프로세스에게 독립적인 주소 공간을 제공하여 메모리 보호, 접근 관리등이 보장된다.
-  장점

○ 여러 프로세스를 동시에 실행 가능
사용할 수 있는 물리메모리보다 많은 메모리를 필요로 하는 애플리케이션을 실행가능하게 함
○ 프로그램 코드 중 일부만 메모리에 로드해도 프로세스 실행가능
○ 라이브러리나 프로그램의 메모리 이미지 하나를 프로세스 사이에서 공유가능
○ 프로그램 재배치 가능
○ 기계 독립적 코드 작성 가능

3. What is Cache Memory? And are the benefits of using that?

- 빠른 접근 시간을 제공하는 기억 장치
- 느린 메모리 때문에 발생되는 프로세서 코어에 가해지는 메모리 엑세스 병목현상 감소
- 프로세서와 메모리 사이의 병목현상을 줄이기 위한 고속 메모리
- 지역성을 적극 활용한 것으로 자주 사용되는 데이터를 캐시에 저장하여 프로세서가 원활히 데이터를 사용할 수 있도록 함
- 장점

○ 가장 빠른 메모리의 속도에 근접한 메모리를 제공한다.

4. Explain the VFS(Virtual File System)?

- 표준 유닉스 파일시스템과 관련한 모든 시스템 콜을 처리하는 커널 소프트웨어 계층
- 실제 파일 시스템의 구현과 사용자 프로세스 사이에 존재하는 추상화 계층
- 여러 종류의 파일시스템에 대해 일반적인 공통 인터페이스를 제공

5. What is PCB(Process Control Block)? And what kinds of information are there?

- 수행 프로세스를 인터럽트 한 후 나중에 그 인터럽트가 발생되지 않은 것처럼 프로세스 수행을 재개할 수 있도록 충분한 정보를 유지하는 것
- 프로세스 식별자, 상태, 우선순위, 프로그램 카운터, 메모리 포인터, 문맥교환, 입출력 상태 정보, 어카운팅 정보

6. Explain the Paging Mechanism in memory management.

- 가상기억장치를 모두 같은 크기의 블록으로 편성하여 운용하는 기법이다. 이때의 일정한 크기를 가진 블록을 페이지라고 한다. 주소공간을 페이지 단위로 나누고 실제 기억공간은 페이지 크기와 같은 프레임으로 나누어 사용한다.
- 프로그램을 페이지 단위로 나누었기 때문에 프로그램 실행 시 모든 페이지가 메모리에 로드될 필요없이 요구된 페이지만을 로드함으로써 여러 프로세스를 실행하는 것이 가능해진다.

7. What is Race Condition among processes? How can we solve the problem?

- 다수의 프로세스나 쓰레드가 공유 자원을 동시에 읽거나 쓰려고 하는 상황
- 두 개 이상의 프로세스가 공유 데이터 항목을 읽고 쓰는 상황으로, 최종 수행 결과는 프로세스들의 상대적인 수행 순서에 따라 달라질 수 있다.
- 해결 방안: Locking과 Non-Preemption
                  상호배제를 통해 임계자원, 임계영역에 단 하나의 프로세스만 접근 할 수
    있도록 한다.
     세마포어와 모니터가 사용된다.
- 경쟁 관계에 있는 프로세스들이 존재하는 경우 상호배제, 교착상태, 기아라는 세가지 제어 문제가 발생한다.


- Race condition을 해결하기 위한 방법은 two process solution, Multiprocess solution, synchronization H/W, semaphore방법 등을 이용하여 해결 할 수 있다. Two process solution에는 하나의 플래그를 사용하는 것과, 두개의 플래그를 사용하는 방법이 있고, Multiprocess solution은 Bakery 알고리즘이라고도 하며 번호를 부여받은 순서대로 처리된다. Synchronization H/W는 test, set, swap 3개의 명령으로 구현되고 semaphore는 P와 V 두개의 atomic한 연산에 의해서만 증감시킨다.

'Education > Operating System' 카테고리의 다른 글

컴퓨터 구조론  (0) 2011.03.11
이벤트 드리븐  (0) 2010.06.28
스레드 컨텍스트 스위치 시점 알 수 있는 방법  (0) 2010.06.28
geekos  (3) 2010.06.27
chapter 7. Memory  (2) 2009.12.11
Posted by 초상큼발랄
l