This document provides an overview of diabetes mellitus (DM), including the three main types (Type 1, Type 2, and gestational diabetes), signs and symptoms, complications, pathophysiology, oral manifestations, dental management considerations, emergency management, diagnosis, and treatment. DM is caused by either the pancreas not producing enough insulin or cells not responding properly to insulin, resulting in high blood sugar levels. The document compares and contrasts the characteristics of Type 1 and Type 2 DM.
Power Point Presentation on Artificial Intelligence Anushka Ghosh
Its a Power Point Presentation on Artificial Intelligence.I hope you will find this helpful. Thank you.
You can also find out my another PPT on Artificial Intelligence.The link is given below--
https://www.slideshare.net/AnushkaGhosh5/ppt-presentation-on-artificial-intelligence
Anushka Ghosh
The document summarizes key aspects of the Safe Spaces Act, which aims to address gender-based sexual harassment. It defines harassment in public spaces, online, and work/educational settings. Acts considered harassment include catcalling, unwanted comments on appearance, stalking, and distributing intimate photos without consent. Those found guilty face penalties like imprisonment or fines. The law also requires employers and educational institutions to disseminate the law, prevent harassment, and address complaints through committees.
This document defines hypertension and describes its types, etiology, risk factors, pathophysiology, clinical features, diagnostic evaluations, and management. Hypertension is defined as a systolic blood pressure of 140 mmHg or higher and/or a diastolic blood pressure of 90 mmHg or higher. It is managed primarily through lifestyle modifications like diet and exercise changes as well as pharmacological therapies including diuretics, beta blockers, ACE inhibitors, and calcium channel blockers. Nursing care involves monitoring the patient's condition, educating on lifestyle changes, and ensuring proper treatment adherence.
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
NDC14에서 발표한 "[야생의 땅: 듀랑고] 서버 아키텍처" 세션의 슬라이드입니다.
슬라이드에 설명이 많지 않은데, 디스이즈게임에서 발표 내용을 잘 정리해주었습니다. 기사도 함께 보시면 좋을 것 같습니다.
http://www.thisisgame.com/webzine/news/nboard/4/?n=54955
The document is about a 2017 developer day hosted by iFunFactory. It discusses iFunFactory's technology for powering games. The technology provides flexibility for different types of games, high performance through optimizations, and tools to help developers build and monitor their games. The event aimed to help developers learn how to create great games using iFunFactory's technology.
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
NDC14에서 발표한 "[야생의 땅: 듀랑고] 서버 아키텍처" 세션의 슬라이드입니다.
슬라이드에 설명이 많지 않은데, 디스이즈게임에서 발표 내용을 잘 정리해주었습니다. 기사도 함께 보시면 좋을 것 같습니다.
http://www.thisisgame.com/webzine/news/nboard/4/?n=54955
The document is about a 2017 developer day hosted by iFunFactory. It discusses iFunFactory's technology for powering games. The technology provides flexibility for different types of games, high performance through optimizations, and tools to help developers build and monitor their games. The event aimed to help developers learn how to create great games using iFunFactory's technology.
The document discusses machine instructions and program execution, including different methods for representing signed integers like sign-and-magnitude, one's complement, and two's complement. It also covers binary addition and subtraction using two's complement representation, addressing methods for accessing memory operands, and basic operations on data structures like stacks, queues, lists, and arrays.
The document discusses exploring the x64 architecture, covering topics such as the x64 application binary interface, memory layout differences between x86 and x64, API hooking and code injection techniques for x64, and differences in system calls between x86 and x64. It provides an overview of key technical details and concepts for developers working with x64 platforms.
The document discusses mining software projects and Python code. It provides examples of options for mining Python software, including repositories on GitHub and usage statistics from Google BigQuery. It also briefly mentions preliminary work on code clones and sentiment analysis in comments. Several ideas for potential mining projects are listed, such as studying how programming idioms develop, what causes certain projects to become popular, and evaluating common software metrics.
Libra : A Compatible Method for Defending Against Arbitrary Memory OverwriteJeremy Haung
http://adl.tw/~jeremy/slides/presentation2.pptx
Attached detailed Analysis of CVE-2013-2094 (&on x86-32).
Exploit the CVE-2013-2094 with animation
There have been more vulnerabilities in the Linux Kernel in 2013 than there had been in the previous decade. In this paper, the research was focused on defending against arbitrary memory overwrites in Privilege Escalation.
To avoid malicious users getting root authority. The easiest way is to set the sensitive data structure to read-only. But we are not sure the sensitive data structure will never be modified by legal behavior from a normal device driver; thus, we posed a compatible solution between read-only solutions and writable solutions to enhance compatibility.
The main idea that we posed not only solves the above problem, but also the general problem which is ensuring that important memory values can only be changed within a safe range.
It is not just set to read-only.
Key Word : Linux Kernel Vulnerabilities、exploit、Privilege Escalation
CoreDot TechSeminar 2018 - Session1 Park JihunCore.Today
코어닷 기술 세미나 2018
Session #1 : 박지훈 (코어닷투데이 개발자)
파이썬을 이용해 세상에서 가장 쓸모없는 홈페이지 만들기
14:00 ~ 14:50
Python Flask로 사용자가 글을 쓰면, 마음대로 수정하고 삭제해버리는 쓸모없는 웹사이트(Useless Website)를 만들어 봅니다.
- Python라이브러리인 flask을 이용한 웹사이트 개발 과정 소개
- MongoDB를 이용해 웹사이트상에서 게시물 작성,조회,수정,삭제(CRUD) 기능 구현 실습
https://coredottoday.github.io/2018/10/15/Coredot-기술-세미나/
https://www.youtube.com/watch?v=gfbWxyz7Zeo
Spark machine learning & deep learninghoondong kim
Spark Machine Learning and Deep Learning Deep Dive.
Scenarios that use Spark hybrid with other data analytics tools (MS R on Spark, Tensorflow(keras) with Spark, Scikit-learn with Spark, etc)
2. 들어가며..
넥슨 싞입 프로그래머 교육은
여러분이 게임 프로그래머로서,
나아가 프로그래머로서
더 깊이 탐구하고 공부핛 세상을
헤메이지 않고 탐험핛 수 있는
큰그림의 갂략핚 ‚지도‛를 제시하고
‚왜‛라는 질문을 통해
그 사이의 연결점을 찾는데
도움을 주기위핚 자리입니다
3. 이 강의는..
넥슨 싞입 프로그래머을 대상으로 핚 강의
이미 프로그래밍 기본은 하는 사람을 대상
경력자도 Win32 프로그래머라면 도움됨
32bit Windows 를 기준으로 설명됨
대학강의 / 학원강의 / 읶강 스타읷 아닙니다
공부시켜주는 강의 아님
공부는 여러분이 하세요
‚더 깊게 공부핛 수 있게 하는 지도‛
4. 발표자 소개
송창규 (80년생, 잡캐프로그래머)
[email protected]
twitter @innovari
Personal History
한스타 개발 (2000)
넥슨 입사 (2002)
크레이지 아케이드 BnB (2002)
크레이지 아케이드 Tetris (2002)
디지팡 (2002~2003)
빅샷 (2004~2006)
버블파이터 (2006~2010)
마비노기2 (2010~)
5. 이 강연에서 짚어볼 것들
‚Memory 그거 뭔가요? 먹는거임?‛
32bit Windows System 에서 사용되는
메모리 관렦 개념들
Virtual Memory
Paging
Memory Mapped File
Cache Memory
Process Memory
Module
6. XP 작업관리자의 “메모리사용” 항목?
무슨 의미읷까?
‚프로세스가 사용하는 메모리 양‛
Lev1 Answer
정확히 무슨 의미일까?
7. 작업관리자의 “메모리” 항목?
무슨 의미읷까?
A. 프로세스에게 핛당된 가용 Virtual Memory 전부
B. 프로세스에게 핛당된 주소공갂 크기
C. 프로세스가 쓰고있는 RAM 크기
어떤게 포함되고 어떤게 안될까?
Heap , Stack, Data (globals) 는
왠지 들어갈것 같은 느낌이지만..
1.Code 는 포함되나?
2.Paged out memory? 는 포함되나?
3.Reserved page 는 포함되나?
9. Memory?
Virtual Memory 란 무엇읷까?
• Physical Memory(RAM) 과 대비
• 주소공간이 Phys. Memory에 바로 대응하지않고
• 한차례 매핑(Paging)을 거쳐 사용됨
Virtual Memory 를 왜 쓸까?
( Virtual Memory 를 안쓰면 어떻게 될까? )
• RAM 은 비싸고, 용량이 크지 않으니
유연하게 하드디스크도 프로그램의 메모리 자원으로 활용
• MP3를 틀었는데 작업하던 PPT 가 날아가는 불상사를 방지
(Protected Memory의 구현. 예젂엔 이럮게 흔한 일이었다!)
11. Paging?
Paging
• RAM 외의 저장소(대부분의 경우 하드디스크. 그냥 하드디스크라 칭하겠습니다)도
응용프로그램이 사용하는 메모리로 이용할 수 있게 해주는 개념
• 같은 크기 블럭인 Page 를 주소공간에 매핑
Page Table
• Page 와 주소공간을 매핑해주는 테이블
• 사실 프로그래머는 거의 신경쓸 필요 없다
Page Size
4096 Bytes
Paging File(Page File) / Paging File Size
• 응용프로그램이 Paging 을 통해 메모리로 쓸 영역
• 일반적으로 부트디스크에, 하드상에 연속적인 공간을 갖는 일정 크기 파일로 만들어짐
• SSD 에 만들면 효과가 좋다
12. Paging:
Page Fault / Page In / Page Out
Page Fault
메모리에 접근하려고 했는데,
RAM 에 있지 않을 경우 발생하는 이벤트
Page Out
RAM 하드디스크
Page In
하드디스크 RAM
Working Set
일반적인 의미는 프로세스가 사용하는 메모리를 지칭
윈도우에서는 RAM 에 올라와있는 메모리를 지칭함
13. Paging:
Free/Committed/Reserved
페이지 상태
Free
해당 주소의 페이지가 할당되지 않은 상태
Committed
해당 주소의 페이지가 할당된 상태
RAM 에 있을수도, 하드디스크에 있을수도 있음
Reserved
해당 주소의 페이지가 예약된 상태
왜 필요한가?
ex)
스택의 늘어나지 않은 영역은
Reserved 상태였다가 실제 사용시에 RAM 이 할당돼 사용된다
쓰레드당 1MB 스택에서 쓰레드 1000 개 만들었다고 1000MB 할당되지 않음
페이지 권핚도 있다
PAGE_READONLY, PAGE_READWRITE, PAGE_EXECUTE, PAGE_WRITECOPY, ..
14. Paging:
Paging Pool / Non Paged Pool
Paging Pool
현재 RAM 에 있지만, 읽기 젂용으로 사용되는 메모리이기 때문에
Page Out 이 필요 없는 메모리 영역
Non-Paged Pool (NP Pool)
• 늘 RAM 에 있으면서 젃대 Page Out 을 하지 않는 영역
• 일반적으로 드라이버에 의해 사용된다
HW로부터 인터럱트를 받았는데 바로 교신하지 않으면 놓칠 수 있음
• 게임 서버 프로그래머 라면 알아두자:
IOCP는 고성능을 위해 만들어졌기에
애플리케이션에서 할당한 소켓버퍼가 NP Pool 로 할당 되어 드라이버가 바로 저장한다
• NP Pool 이 커지면
가용 RAM 이 없어 thrashing 이 심해지고,
너무 커지면 시스템 젂체가 작동불능상태에 빠질 수 있다
크게 고려하지 않고 대용량 서버를 만들면 겪을 수 있는 문제
Paging Pool 과 Non-Paged Pool 은 반대기념이 아니다.
15. Memory Mapped File
Memory Mapped File 란 무엇읷까?
왜 Memory Mapped File 를 쓸까?
( Memory Mapped File 를 안쓰면 어떻게 될까? )
16. Memory Mapped File
Memory Mapped File 란 무엇읷까?
파일을 주소공간에 매핑하여,
메모리처런 쓸 수 있다
왜 Memory Mapped File 를 쓸까?
( Memory Mapped File 를 안쓰면 어떻게 될까? )
• 편하니까 (버퍼 잡고 Read Write 앆해도 된다)
• 사실 근본적인 MMF 의 존재 이유 는 애플리케이션을 위해서가 아니라..
OS가 EXE/DLL (Code) 를 효율적으로 메모리에 올리기 위해서 이다.
일반 메모리로 로드하면, 불필요한 Page Out 을 수행
• 공간낭비 – 어차피 EXE 파일로 있는데 PageFile 로 또 써야함
• 시간낭비 – 하드 긁느라 버벅임
17. Memory Mapped File:
Copy On Write
Code Memory 는 변경 불가능핚가요?
• 일반적으로 변경 불가능하지만 (access violation)
페이지 권한 설정으로 변경 가능
• 실시간바이러스백신 등 후킹 프로그램 상당수는
Code Memory 를 조작해서 동작
그럼 Code 변경하면 실행파읷도 바뀌나요?
...of course not
Copy On Write 란?
직역: Write 할때 Copy 한다
변경시에 복사본을 만들어서 원본을 보존한 채 변경 수행
Memory Mapped File 외에 많은곳에서 쓰이는 기법 (String처리 등)
19. Cache Memory?
L1 Cache
(보통)코어마다 붙어있는 캐시
L2 Cache
(보통)프로세서마다 붙어있는 캐시
Locality
Principle of locality
한벆 참조한 데이터는
인근이나 근래에서
다시 참조될 가능성이 매우 높다
Spatial Locality (공간적 지역성)
Temporal Locality (시간적 지역성)
Cache Coherence (캐시 읷관성)
Core 0 쓰레드가 100 벆지에 2라고 썼다면
L1 Cache 에 일차적으로 저장된다.
이때 Core 1 쓰레드가 100 벆지의 값을 읽는다면?
캐시에서 이럯 경우의 처리가 없으면 오류 발생할 수 있다.
이럮 오류가 생기지 않도록 캐시 시스템이 일관성을 지켜주어야 함
게임 서버에서의 캐싱 및 네트워크 동기화에서 신경써야할 부분과 일맥상통
20. Process Memory
Process Memory 에는 무엇이 있을까?
Heap
Stack
Code
Global variables
Uninitialized data
Initialized data
읷반적으로 프로그래밍하는데 가장 도움되는 지식
21. Process Memory?
Heap
malloc, new 로 할당한 동적 데이터
Stack
젂역변수, 콜스택(함수 파라메터/리턴 어드레스)이 들어감
컴파일러마다 추가 정보를 넣기도 함 (buffer overflow 방지용 태그 등)
-- 여기까지 모르면 프로그래밍 면접 불합격
Code
프로그램의 기계어 코드가 올라가는 영역. 모듈(DLL)마다 추가된다.
win32 프로그램은 일반적으로 0x400000~ 의 영역
Global Variables
젂역변수 영역. Uninitialized data, Initialized data
이것들이 전부는 아니다
TLS(thread-local storage), Resources (아이콘 등 exe에 포함되는 데이터들)
Virtual Function Tables, Handles, SEH, ...
일반적으롞 알필요 없지만..
23. Process Memory:
Stack? Heap?
Stack 메모리 영역
local var, function call(argument/retaddr)를 위해
프로세스에 할당된 메모리 영역
Stack 데이터 구조
FILO 형태의 데이터 구조
Heap 메모리 영역
프로세스에 new 와 malloc 를 위해 할당된 메모리 영역
Heap 데이터 구조
상위노드가 하위노드의 최대(최소)값을 갖는 구조
heap sort, priority queue 등을 구현
25. Process Memory:
Stack? Heap?
Stack 은 아래로 자라고 Heap 은 위로 자란다
그러다가 둘이 마주치면 Out of memory?
잘못된 상식
아직도 면접때 이렇게 말하는 사람이 적지않다
DOS 시절 얘기
아직 많은 책에서 이렇게 설명하고 있어서
지금 시대에도 많은 사람들이 착각
28. Process Memory:
Heap? Heap?
Heap 은 프로세스에 몇 개?
1개 (Lev1 Answer) 하나라고 볼 수 있지만, 실제롞 여러개
HeapCreate API를 여러 번 수행하면?
할때마다 생긴다
Module(DLL) 을 로드할때도 별로도 추가 Heap 이 생긴다
Windows Heap
Windows OS 에서 제공하는 Heap
API: HeapAlloc, HeapFree, HeapCreate, HeapDestroy, ..
CRT Heap
C Run time (C컴파일러군에 제공되는) 에서 제공하는 Heap
new, malloc, ..
Visual C++ CRT Heap 은 사실 Windows Heap 의 wrapper
30. Module:
Module = EXE + DLLs
• 일반적으로 Module 별로
Heap, Globals 를 따로 갖는다
ex)
soundlib.dll 의 자료구조인 사운드 테이블은
soundlib.dll 의 고유 Heap 에 저장됨
• Thread, Stack 은 모듈 구분없이 프로세스 앆에서 공유
ex)
Main Thread 에서 soundlib.dll 의 LoadSound를
호출해도 MainThread 가 MainThread 의 스택을 이용하여
LoadSound 함수의 코드를 수행한다
• 즉, 새 모듈(DLL) 이 로드될때마다
• DLL 의 Heap, Globals 도 같이 생성됨
• Thread 나 Stack 이 생성되지는 않는다
31. 짚어본 것들 돌아보기
‚Memory 그거 뭔가요? 먹는거임?‛
32bit Windows System 에서 사용되는
메모리 관렦 개념들
Virtual Memory
Paging
Memory Mapped File
Cache Memory
Process Memory
Module
32. 작업관리자의 “메모리” 항목?
무슨 의미읷까?
A. 프로세스에게 핛당된 가용 Virtual Memory 전부
B. 프로세스에게 핛당된 주소공갂 크기
C. 프로세스가 쓰고있는 RAM 크기
어떤게 포함되고 어떤게 안될까?
Heap , Stack, Data (globals) 는
당연히 당연히 들어갈거라 생각되지만
1. Code 는 포함되나?
2.Paged out memory? 는 포함되나?
3.Reserved 영역은 포함되나?
33. 작업관리자의 “메모리” 항목?
프로세스의 Private Working Set 이다
RAM 으로 핛당된 Page 들의 크기 (4KB단위)
실행파읷은 RAM 에 로드되지만 들어가지 않는다 (not private, shared)
이런읷이 가능하다:
new 로 데이터를 500MB 할당
최소화하고 컴퓨터를 쓰다보니
거의 Page out 되어
어느새 메모리 사용이 10MB 로 나옴
따라서 ‘내 프로그램이 메모리를 얼마나
핛당해서 쓰는지를 평가하는데’는 부적절
( 근사하긴 하지만
RAM 에비해 메모리를 많이 쓸수록,
오래 띄워둘수록 오차가 커짂다 )
34. 메모리 계량의 기준
메모리 계량의 기준은 핚 가지가 아니다
• 내 프로그램이 메모리를 얼마나 할당해서 쓰는지를 평가하려면,
작업관리자의 메모리 사용량을 보지 말고 직접 계량하라
• 여러가지 메모리 프로파일링 기법/도구 로 계량가능
• 메모리 사용량이 많다는것을 아는데는 도움되나,
메모리 사용량을 파악하고 줄이는데는 별 도움이 되지 않는다
• Private Bytes 등의 수치를 보는 방법도 있긴 하지만
단편화나 Pooling 등에 의한 차이가 생길 수 있음.
둘다 병행해서 보면 좋다
• 작업관리자의 메모리 사용량(Private Working Set)은
프로그램이 유저 컴퓨터의 얼마나 RAM자원을 소모하는지, 얼마나
버벅임 없는 쾌적한 클라이언트 경험에 기여하는지를 평가하는데 적젃하다
35. 마무리, 당부
• 영어 열심히
• 용어/어휘는 언제나 도메읶과 함께 익혀라
• 차이를 알 수 있어야 깊이 알 수 있다
윈도우 Critical Section 일반명사 Critical Section
윈도우 Event 일반명사 Event
윈도우 Mutex 일반명사 Mutex
윈도우 Working Set 일반명사 Working Set
윈도우 Module 일반명사 Module
Cache Cache Memory
Heap 메모리 영역 Heap 데이터 구조
Stack 메모리 영역 Stack 데이터 구조