태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
Blog | Tag | Local | Media | Guest | Login  RSS
전체에 해당되는 글 27건
2007.10.31 :: 숙제 확인 결과 (1)
2007.10.25 :: C# 숙제 1주차 (14)
2007.10.25 :: sql server2005 관련 (2)
2007.10.22 :: 책 ~?

아키텍쳐는 크게 사용자 모드와 커널 모드로 나뉘어 진다.

사용자 모드의 프로세스들은 자신만의 전용 프로세스 주소 공간을 가진다.
-시스템 지원 프로세스 : 로그온 프로세스와 세션 관리자 (windows서비스 아님)
- 서비스 프로세스 : 작업 스케줄러, 스풀러 서비스 (일반적으로 사용자 로그온에 독립적 실행을 요구한다.)
- 사용자 응용 프로그램 : windows 32bit,64bit,3.1 16bit, MS-DOS 16bit, POSIX 32bit, OS/2 32bit 중 하나가 될수 있다.
- 환경 서브시스템 서버 프로세스 : 운영체제 환경 또는 사용자와 프로그래머에 나타난 개별 구성에 대한 지원 부분으로 구현

서비스 프로세스, 사용자 응용 프로그램은 네이티브 Windows 운영체제 서비스를 직접 호출하지 못한다.
 대신에 하나 이상의 서브시스템 동적 링크 라이브러리(DLL)을 통해 호출한다.

DLL(dynamic linking library)

: OS/2, 윈도즈 등의 운영 체계(OS) 본래 기능으로, 소프트웨어의 루틴을 몇 개의 파일로 나누어 디스크에 두고 필요한 것만을 실행 메모리에 실어서 사용하기 위한 파일. DLL로 사용되는 파일은 확장자가 ‘dll’로 되어 있기 때문에 ‘DLL 파일’이라고 부른다. DLL의 장점은 루틴을 공통으로 사용하는 것이다. 루틴의 함수 집단을 자료집이라고 하는데, 보통 실행 파일을 작성할 때 자료집을 포함해서 컴파일하는 경우가 많다. 그러나 이 방법은 동일 루틴을 다수의 실행 파일이 갖게 되어 비효율적이다. DLL은 다수의 실행 파일에 공유될 수 있기 때문에 디스크 용량이나 메모리를 절약할 수 있다. 또 프로그램을 수정하려는 경우, DLL 파일만을 수정함으로써 완료되는 경우도 있다. 윈도즈 등에서는 OS 기능은 물론 DLL을 애플리케이션과 공유할 수도 있으나, DLL 파일 등의 애플리케이션이 공유되고 있는지는 이용자 수준에서는 판단하기가 어렵다.

NTDLL.DLL
▶ 서브시스템 DLL들을 사용하기 위한 특별한 주요 시스템 지원 라이브러리이며
 - Windows 실행부 시스템 서비스에 대한 시스템 서비스 디스패치 스텁(stub)
 - 서브시스템, 서브시스템DLL, 다른 네이티브 이미지에 의해 사용되는 내부 지원 함수
를 포함한다.


커널 모드는 크게
-windows 실행부 : 메모리 관리, 프로세스 및 스레드 관리, 보안, I/O, 네트워킹, 프로세스간 통신등을 포함
-windows 커널 : 스레드 스케줄링, 인터럽트,예외 디스패칭,멀티프로세서 동기화등과 같은 저수준 운영체제함수
-장치드라이버 : 하드웨어장치, 파일시스템과 파일시스템 필터, 네트워크 리디렉터 및 서버, 프로토콜,커널 스트리밍 필터 드라이버들이 있다.
   ▶ 드라이버 모델별로는 버스 드라이버, 기능 드라이버, 필터 드라이버
- 하드웨어 추상 계층(HAL) : 플랫폼들 간의 이식성을 가능하게 하는 핵심 부분이며, Windows가 실행되는 하드웨어 플랫폼에 대한 저수준 인터페에스를 제공하기 위해 로드되는 커널 모듈(Hal.dll)이다.
- 윈도우와 그래픽스 시스템 : 사용자 인터페이스 제어, GUI 함수 구현


<시스템 프로세스>
1. System Idle Process :  유휴 프로세스
2. System Process : 커널 모드의 시스템 스레드
3. Smss.exe : 세션 관리자 - 윈도우즈 시작 단계에서 추가적인 페이지 파일을 열고, 지연된 파일 이름 변경을 수행, 세스템 환경 변수를 생성하는 것과 같은 여러 중요한 단계를 담당
 Csrss.exe와 Winlogon 프로세스를 실행하고 이들은 시스템 프로세스의 나머지를 차례로 생성한다.
4. Csrss.exe : Windows 서브시스템 프로세스
5. Winlogon.exe : 로그온 프로세스 - 대화식 사용자 로그온과 로그오프를 처리하며, SAS(secure attention sequence) 키스트로크 조합이 입력될 때 사용자 로그온 요청을 Winlogon에 통지한다.
6. Services.exe : 서비스 제어 관리자 - 서비스 프로세스들과 상호작용하고 시작/종료를 담당하는  이미지 \Windows\System32\Service.exe를 실행하는 특별한 시스템 프로세스이다.
7. Lsass.exe : 로컬 보안 인증 서버 - 액티브 디렉터리 또는 SAM(사용자와 그룹의 정의를 가지고 있는 레지스트리 부분)에 저장된 것과 암호가 일치하는지 여부를 검사하는 것처럼 실제 검증을 수행하기 위해 적절한 인증 패키지(DLL로 구현되었다)를 호출한다.

하이퍼 스레딩이란?

하이퍼 스레딩은 펜터엄 4에 적용된 넷버스트 아키텍처가 가지는 깊은 파이프라인의 장점을 가장 잘 이용하고 있는 기술이다. 파이프라인이 무려 20단계에 달하는(프레스콧에 이르러서는 더 늘어난 것으로 추정되기도 하지만 확인되지는 않았다.)펜티엄 4의 특성상, 파이프라인 중간중간이 '놀고있을'확률이 상대적으로 높다. 물론 인텔은 이러한 길어진 파이프라인을 효율적으로 활용하기 위해서 디코더가 든 샐행추적 캐시라던가 더욱 강화된 동적 실행 기능을 적용시키고 있지만 P6 코어에 비해서도 2배 이상으로 늘어나버린 거대한 파이프 라인은 CPU의 클럭을 높이는 것 외에 다른 노림수가 있는 것인데, '하이퍼스레딩'이 바로 그것이다.

하이퍼 스레딩의 데뷔.

하이퍼 스레딩이 처음 적용된 것은 2002년 3월 533MHz로 동작하는 FSB를 채택한 제온 CPU이다. 이후 PC CPU로는 2002년 11월에 펜티엄 4 3.06MHz를 통해서 데뷔했다.

하이퍼 스레딩의 성능.

하이퍼스레딩을 쓰는 CPU라면 작업관리자에 2개의 CPU가 달린 것처럼 나타난다. 하이퍼스레딩 기술은 1개의 CPU를 마치 2개처럼 인식시켜주기 때문이다.

하이퍼스레딩의 동작원리는 길어진 파이프라인 사이사이의 놀고 있는 CPU 자원을 활용해보자는 데서 출발한다. 파이프라인이 길어졌기 때문에 중간중간 놀고 있는 CPU 자원이 있기 마련인데, 이 빈공간을 또하나의 CPU처럼 써먹는 것이다.

CPU가 2개로 인식되기 때문에 성능도 2배일 것으로 생각하는 이도 있지만, 앞서 말했듯 동작중인 파이프라인의 빈 공간을 활용하는 것이기 때문에 실제 성능향상은 많아봐야 10%에 불과하고, 보통은 5% 전후라고 보면 된다.

하이퍼스레딩이 큰 의미를 가지는 것은 논리적인 다수의 CPU를 쓰기 때문에 하이퍼 스레딩이 적용되지 않은 경우보다 멀티태스킹 등에서 매우 부드러운 동작을 보여준다는 데에 있다. 복잡한 소프트웨어를 돌리면서 다른 작업을 시도해 본 적이 있다면 이해가 더 빠를 것이다. 인텔은 하이퍼스레딩에 대해 '백그라운드 작업이 많을 때 '를 매우 중요하게 간주하고 있다. 백신이라던가 하는 프로그램들이 돌아가고 있느느 상황에서 다른 프로그램을 또 돌리게 된다면 멀티태스킹에 강한 하이퍼스레딩 기술이 높은 효과를 보여준다는 것이다.

하이퍼 스레딩의 단점.

하지만 하이퍼스레딩도 분명한 단점이 있다. 우선 '멀티프로세서'를 알아채는 운영체제를 써야 한다는 것이다. 논리적이기는 해도 어더까지나 CPU를 2개로 인식시켜 동작하기 때문에 윈도우 98,95,Me 등에서 하이퍼스레딩 효과를 볼 수 없다. 윈도XP와 NT는 멀티프로세서를 알아채기 때문에 하이퍼스레딩의 덕을 본다.

또 한가지, 멀티태스킹에서는 분명히 부드러운 동작을 보여주지만 무거운 프로그램 하나만 돌릴 때는 어떨까? 이 때에는 해당 소프트웨어가 "멀티스레딩(Multi threading)"을 해야만 한다. 만약 멀티스레딩을 하지 않는 소프트웨어라면 이 역시 하이퍼스레딩의 효과를 볼 수 없다.

<NUMA란>  (Non-Uniform Memory Architecture)
 1. 정의

  NUMA는 멀티 프로세서에서 사용되는 메모리 구조의 한가지로, 이 구조에서는 메모리의 접근 시간이 CPU 대비 메모리의 상대적인 위치에 의해 결정된다. 즉, CPU의 로컬 메모리일 경우 메모리 접근 시간이 매우 빠르며, 다른 CPU의 로컬 메모리거나, 여러 프로세스가 공유하는 메모리일 경우 접근 시간이 느려지는 특성을 가지고 있다.

사용자 삽입 이미지
2.. 기본 개념

  컴퓨터가 개발된지 얼마 안된 1950~60년대에는 CPU의 속도가 메인 메모리 속도보다 느렸다고 한다. 그러던 것이, 1970년대를 지나면서 CPU 속도가 메모리 속도를 추월하게 되었다. 결과적으로 메모리에서 데이터를 제때 가져오지 못해 CPU가 일처리를 못하고 지연되는 현상이 발생했다. 따라서 1980~90년대 슈퍼 컴퓨터들은 빠른 속도로 메모리에 접근할 수 있는 방법에 초점을 두고 디자인됐다. 최근의 컴퓨터들은 메인 메모리로의 접근 횟수를 제한하여 높은 성능을 내고 있다. 이는 속도가 빠른 캐시 메모리를 장착하고 세련된 알고리즘을 사용하여 캐시 미스(cache miss)를 피하는 방법을 의미한다. 그러나 운영체제와 운영체제에서 동작하는 어플리케이션들이 예전과는 비교할수 없을 정도로 그 크기가 커짐에 따라서 캐시를 이용하여 성능을 높이는 방법은 한계에 다달았다. 멀티 프로세서 시스템에서는 상태가 더더욱 나빠졌다. 메인 메모리에 동시에 접근할 수 없기 때문에 동시에 접근한 몇몇 프로세서들은 메모리를 사용하지 못하고 지연되는 사태가 발생한 것이다.

  NUMA에서는 각각의 프로세서에 메모리를 분할하여 제공함으로써 여러 프로세서들이 동시에 메모리에 접근할때 발생하는 성능상의 문제를 회피하도록 시도하고 있다. 널리 분포된 데이터에 대해서는 프로세서 개수 혹은 메모리 뱅크의 개수에 비례하여 단일 공유 메모리에 저장함으로써 속도를 높이고 있다.

  물론 모든 데이터들이 특정한 하나의 태스크(task)에 종속되지는 않는다. 즉 하나 이상의 프로세서에서 같은 데이터가 필요한 상황도 있다. 이러한 경우 NUMA는 분리된 메모리 뱅크 사이에 데이터를 이동하도록 추가적인 하드웨어나 소프트웨어를 사용한다. 따라서 다른 메모리 뱅크의 데이터를 사용하게 되면 속도가 느려지게 되는 것이다. 그러므로 NUMA의 성능은 전적으로 해당 시스템에서 돌아가는 태스크의 특징에 달려있다.

POSIX (Portable Operating System Interface)

POSIX는 유틱스 운영체제에 기반을 두고 있는 일련의 표준 운영체계 인터페이스이다. POSIX의 시작은 많은
버전으로 개발, 배포되는 UNIX를 표준화하기 위해 만들어졌다. Source Code Portability를 목표로 OS에 대한
표준화 작업을 진행하면서 Real-Time OS에 대한 표준을 만드는 작업도 같이 진행되고 있다. 미국에서 진행하는
만큼 미국에서 개발되는 대부분의 RTOS는 POSIX를 따르고 있다.

유닉스는 앞서가는 특정 컴퓨터 회사들에 의해 소유된 독점적인 운영체계가 아니었다는 것과, 또 그것이 표준
프로그래밍 언어로 작성되고, 대중적인 많은 아이디어를 받아들였다는 이유 때문에, 누구에 의해서도 개선되고
강화될 수 있는 최초의 개방형 표준 운영체계가 되었다. 다양한 버전의 유닉스로 부터 나온 C 언어와 쉘 인터페이스의 복합체는 IEEE의 찬조하에서 POSIX로 표준화 되었다.


 HAL(Hardware Abstraction Layer) :  운영체제와 하드웨어 간의 독립성을 제공해 주는 구성요서로서 Windows 2000 이 다양한 하드웨어 플랫폼에서 설치되도록 제공함

 


Name
Password
Homepage
비밀글 (Secret)
숙제 확인 결과
안녕하세요 C#을 맡고 있는 권준상입니다.

저도 역시 그닥 잘하는 편이 아니라^^
그냥 보고 생각나는 점만 주저리 되겠습니다.

1. 기본적인 내용
우선 기본적인 내용에 대한 답은
그렇게 어려운 부분이 아니며 변수 선언 분기 값 입력 출력을 테스트 하는 내용이었습니다.
해당 내용에 대해서는 다들 충실히 하신거 같습니다.

2. 오류체크
오류체크 부분은 생각하신 분이 없는 것 같습니다.
아직 힘든부분이긴 하나 예를들어 숫자를 입력하는 곳에 문자 입력(난이도 있기 때문에 .)
구구단의 경우 9이상이나 1이하의 숫자를 넣었을때 오류 출력
등과 같이 기본 체크의 경우 충분히 가능하다 생각합니다.

3. 함수
아직 객체에 대해 배우지 않았다고 생각하지만
기본적으로 main함수에 모든 내용을 넣는 것은 좋은 방식이 아닙니다.
적절한 의미를 두고 함수로 빼던지
자주 쓰이는 부분만 도출하는 센스가 필요합니다.
(이부분이 가장 어려운 부분이죠)

다들 숙제 하느라 수고하셨습니다..^^
하면 할 수록 늘거라 생각이듭니다..^^

그럼 즐거운 하루 되세요

BlogIcon MayStyle| 2007.11.04 15:14 신고 | PERMALINK | EDIT/DEL | REPLY
귀차니즘 땜시...ㅋ
Name
Password
Homepage
비밀글 (Secret)
C# 숙제 1주차
오늘의 숙제

완전 어거지로 그냥 생각나는대로 -_-;

다음과 같은 화면을 만드시오
(콘솔 프로그램으로 작성)

> 1번째 숫자를 입력해 주세요 >

> 2번째 숫자를 입력해 주세요 >

1번째 숫자가 더 큽니다 (결과를 출력)
- 같은 경우 두 숫자가 같습니다 라고 출력

>숫자를 입력해 주세요 >

>3단을 계산하겠습니다.

결과

> 당신의 이름을 입력해주세요 >

당신의 이름은 김말똥 입니다.

위와같은 프로그램 작성 부탁드립니다.

> 로 시작하는 부분은 입력부분이며 총 3개의 입력을 받게 됩니다.

참고로 입력은 System.Console.WriteLine입니다.

하다 궁금하신 점은 댓글로 달아주시기 바랍니다..^^

그럼 즐거운 하루 되세요

BlogIcon hotpoto| 2007.10.26 23:57 신고 | PERMALINK | EDIT/DEL | REPLY
ㅇㄴㅅㅅㄴ~~ 숙제에 관한 1등 리플...ㅋ
아직 연습중이라 나중에 질문할께용...캬캬
BlogIcon MayStyle| 2007.10.27 01:53 신고 | PERMALINK | EDIT/DEL | REPLY
난 월요일날 해서 낼께~~~
글구... SQL 스터디 책은... 내가 볼때 2000 책이긴 하지만 정원혁씨가 쓴 전문가로 가는 지름길 SQL2000 관리자 로 했으면 한디...ㅋ
권준상| 2007.10.27 20:40 | PERMALINK | EDIT/DEL | REPLY
흠 니가 말한책은 몇번 봣어 ㅋㅋ
근데 구조를 보고싶기도 하고
2000보단 2005에 흥미가 가서
2005 위주로 할 생각 ㅎㅎ
BlogIcon MayStyle| 2007.10.29 14:23 신고 | PERMALINK | EDIT/DEL | REPLY
둔상... 어찌다 보니 내일 설에 갈꺼 같다~~~
레포트는 꼭 해서 낼께... ㅋ
BlogIcon MayStyle| 2007.10.30 10:36 신고 | PERMALINK | EDIT/DEL | REPLY
대충 했응깨 욕은 하지 말드라공~~~ 레포트 제출 완료
BlogIcon MayStyle| 2007.10.30 11:00 신고 | PERMALINK | EDIT/DEL | REPLY
using System;
using System.Collections.Generic;
using System.Text;

/******************************
> 1번째 숫자를 입력해 주세요 >

> 2번째 숫자를 입력해 주세요 >

1번째 숫자가 더 큽니다 (결과를 출력)
- 같은 경우 두 숫자가 같습니다 라고 출력

>숫자를 입력해 주세요 >

>3단을 계산하겠습니다.

결과

> 당신의 이름을 입력해주세요 >

당신의 이름은 김말똥 입니다.

위와같은 프로그램 작성 부탁드립니다.
* *****************************/
namespace MSEasy_1
{
class Program
{
static void Main(string[] args)
{
int firstNumber, secondNumber, gugu;
string name;
System.Console.Write("Input First Number : ");
firstNumber = System.Convert.ToInt32(System.Console.ReadLine().Trim());
System.Console.Write("Input First Number : ");
secondNumber = System.Convert.ToInt32(System.Console.ReadLine().Trim());
if (firstNumber > secondNumber)
{
System.Console.WriteLine("First Number is bigger then Sencond Number");
}
else if (firstNumber < secondNumber)
{
System.Console.WriteLine("Sencond Number is bigger then First Number");
}else
{
System.Console.WriteLine("SEM SEM yo~~~");
}

System.Console.WriteLine("Input Number");
gugu = System.Convert.ToInt32(System.Console.ReadLine().Trim());

for(int i = 1; i <=9; i++)
{
System.Console.WriteLine( gugu +" X " + i + " = " + gugu*i);

}

System.Console.Write("Input your name : ");
name = System.Console.ReadLine().Trim();
System.Console.Write("Your name is : " + name);
name = System.Console.ReadLine().Trim();
}
}
}
BlogIcon hotpoto| 2007.10.30 22:04 신고 | PERMALINK | EDIT/DEL | REPLY
흠..... 형들~ 내가 낼은 숙제 꼭 낼께용~~
뒷쳐지지 않도록 열공열공....^^
근데... 낼 못갈수도 있어서 걱정이에용...흑흑....
BlogIcon hotpoto| 2007.10.30 22:53 신고 | PERMALINK | EDIT/DEL | REPLY
using System;

/// <summary>
/// MS 스터디 숙제 1번
/// 대수비교
/// </summary>
public class Homework1
{

class Homework1
{
static void Main(string[] agrs)
{
// 변수선언
int firstNum, seconNum, inputNum;
String inputName;

// 1번째 입력을 받는 문구 작성
System.Console.WriteLine("1번째 숫자를 입력해 주세요 :>");

// 1번째 입력받을 것을 int형으로 변환 및 변수할당
firstNum = System.Convert.ToInt32(System.Console.Readline(),Trim());

// 2번째 입력을 받는 문구 작성
System.Console.WriteLine("2번째 숫자를 입력해 주세요 :>");

// 2번째 입력받을 것을 int형으로 변환 및 변수할당
seconNum = System.Convert.ToInt32(System.Console.Readline(),Trim());

//입력받는 두개의 값비교
if(firstNum > seconNum)
{
System.Console.Write ("1번째 숫자가 더 큽니다");
}
else if(firstNum < seconNum)
{
System.Console.Write ("2번째 숫자가 더 큽니다");
}else
{
System.Console.Write ("두 숫자는 같습니다");
}

// 3단 계산을 위한 숫자 입력부분
System.Console.WriteLine("숫자를 입력해 주세요 :>");
inputNum = System.Convert.ToInt32(System.Console.ReadLine(),Trim());

//3단 계산
for (int i = inputNum; i <= 9; i++)
{
System.Console.Write(inputNum + "곱하기" + i + " 는 " + inputNum * i);
}

//이름 입력 받기
System.Console.WriteLine("당신의 이름을 입력해주세요");

//이름값 변수에 넣기
inputName = System.Console.Readline();

//이름 출력하기
System.Console.Write("당신의 이름은" + inputName + " 입니다.");
}
}
}
BlogIcon hotpoto| 2007.10.30 22:53 신고 | PERMALINK | EDIT/DEL | REPLY
형~~ 근데..... 나 완전 초보니까 수정해주삼...캬캬
BlogIcon 로멘틱가이| 2007.10.31 00:06 신고 | PERMALINK | EDIT/DEL | REPLY
낼 동조 못오면 옮겨야하는거 아닌가
2명 더 온다던데 우리 선배도 한다고 하니..
이걸로 그냥 fix하자
BlogIcon loveshakim™| 2007.10.31 00:57 신고 | PERMALINK | EDIT/DEL | REPLY
이번주 작업때문에..일정 조정이 조금 필요할꺼 같죠 ^^
대신 더 많이 정리해서 발표할께여 근데..2명이..더오면..나 너무 떨어서 아무것도 못하는거 아닌가 ㅋ
BlogIcon loveshakim™| 2007.10.31 00:57 신고 | PERMALINK | EDIT/DEL | REPLY
일단 생각대로 한번 해 보았는데.. 아마도 에러가 줄줄이 있지 않을까 하는 생각이 드넹..ㅜㅜ
조금더 지나면...지금보다 더 재미있어 지겠지..ㅋㅋ
지금도 못해서 그렇지..재미있으니깐..~~ 화이팅~~


using System;
using System.Collections.Generic;
using System.Text;

namespace firstreport

class minwoo1
{
static void Main()
{
int num1, num2, matrixnum;
String yourname;
System.Console.WriteLine("1번째 숫자를 입력해 주세요 :" + num1); //1번째 숫자 입력
System.Console.WriteLine("2번째 숫자를 입력해 주세요 :" + num2); //2번째 숫자 입력
System.Console.WriteLine("숫자를 입력해 주세요 :" + matrixnum); //입력단 계산을 위한 입력값
System.Console.WriteLine("당신의 이름을 입력해주세요 :" + yourname); //이름 입력
{
if ( num1 > num2 ) // 1번째 숫자가 더 큰경우
Console.WriteLine("1번째 숫자가 더 큽니다."); //1번째 숫자가 클경우 결과 출력
else if ( num1 == num2 ) // 두 수가 같은경우
Console.WriteLine("두 숫자가 같습니다."); //두 숫자가 같을 경우 결과 출력
else //나머지 경우
Console.WriteLine("2번째 숫자가 더 큽니다."); //나머지 경우는 결과 출력
}
{
for (int g = 1; g < 10; g++) //구구단 계산을 위한 값 설정 구구단이니깐..gugu의 g ㅋㅋ
System.Console.WriteLine(matirxnum + "*" + g + "=" + matrixnum*g); //입력한 단 계산 결과출력
}
{
System.Console.WriteLine("당신의 이름은 " + yourname + "입니다."); //이름 입력에 대한 출력값
}
}

}
BlogIcon hotpoto| 2007.10.31 09:33 신고 | PERMALINK | EDIT/DEL | REPLY
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
// 변수선언
int firstNum, seconNum, inputNum;
String inputName;

// 1번째 입력을 받는 문구 작성
System.Console.Write("1번째 숫자를 입력해 주세요 :>");

// 1번째 입력받을 것을 int형으로 변환 및 변수할당
firstNum = System.Convert.ToInt32(System.Console.ReadLine().Trim());

// 2번째 입력을 받는 문구 작성
System.Console.Write("2번째 숫자를 입력해 주세요 :>");

// 2번째 입력받을 것을 int형으로 변환 및 변수할당
seconNum = System.Convert.ToInt32(System.Console.ReadLine().Trim());

//입력받는 두개의 값비교
if (firstNum > seconNum)
{
System.Console.WriteLine("1번째 숫자가 더 큽니다");
}
else if (firstNum < seconNum)
{
System.Console.WriteLine("2번째 숫자가 더 큽니다");
}
else
{
System.Console.WriteLine("두 숫자는 같습니다");
}

// 3단 계산을 위한 숫자 입력부분
System.Console.Write("숫자를 입력해 주세요 :>");
inputNum = System.Convert.ToInt32(System.Console.ReadLine().Trim());

//3단 계산
for (int i=1; i <= 9; i++)
{
System.Console.WriteLine(inputNum + "곱하기" + i + " 는 " + inputNum * i);
}

//이름 입력 받기
System.Console.Write("당신의 이름을 입력해주세요");

//이름값 변수에 넣기
inputName = System.Console.ReadLine();


//이름 출력하기
System.Console.WriteLine("당신의 이름은" + inputName + " 입니다.");

}
}
}
BlogIcon hotpoto| 2007.10.31 09:33 신고 | PERMALINK | EDIT/DEL | REPLY
잘못해서 숙제 수정ㅋㅋㅋ
Name
Password
Homepage
비밀글 (Secret)
sql server2005 관련
보호되어 있는 글입니다. 비밀번호를 입력해 주세요.

Secret Entry! Enter Password


visual stdio .net 간단 설치 문서

Name
Password
Homepage
비밀글 (Secret)
사용자 삽입 이미지

1. Winodws
즉 OS 를 의미한다.
어떤 프로그램이던지 모든 언어는 결국 OS 위에서 동작하며 OS에서 제공하는
함수들을 이용하여 하드웨어와 통신할 수 있다.

.net의 경우 리눅스에서 구동되도록 프로젝트가 진행되어 지고 있다고 하지만
가장 적절한 OS는 Windows이다.

2. 2.3 단계
Orchestration부터 Building Block Services는 결국 .net이 구동되기 위해 필요한 제반요소라
할 수 있다.

3. Visual Studio. NET
이 안에 여러가지 언어가 존재하지만 인터넷과 접점이 되는 언어는
ASP.NET이다 일반적으로 JSP와 자바의 관계와 같이
ASP.NET과 다른 언어들이 인터페이스를 하는 구조로 설계되어 있다.
여기서 다른 언어끼리의 통신을 도와주는 언어로 XML이 있으며 해당 언어는 공통 플랫폼으로 공유할 수 있게 설게 되어 있기때문에 문법과 상관없이 언어간에 통신이 가능하다.

결국 .net이란 언어 자체가 향후 MS의 인터넷 진출을 위한 언어이기 때문에
궁극적으로는 인터넷과의 관계를 생각하지 않을 수 없다.

이런 의미에서 인터넷 - ASP.NET - C# VB.NET VC.NET과 간튼 언어
의 관계 그림을 항상 머리에 세기고 있어야한다.

Name
Password
Homepage
비밀글 (Secret)
C# 코딩 결과

1. 콘솔
콘솔 프로그램의 경우 자바라고 생각 하면 될듯

자바의 import의 개념이 C#의 using으로 헤더를 사용해 주고 있으며
기본 개념은 클래스인 점
예외처리 상속 모두 기본개념은 자바와 동일하다

다만 문법과 .net frame work에 기반하고 있다는 정도가 다른점

결국 자바 사용자는 기본 문법과 .net 의 기본 구조에 대해 인지하고 있으면
배우는건 금방 배울 수 있다는 결론이 나오게 된다.

2. 윈도우
윈도우 포멧은 비주얼 베이직과 동일하다.

이벤트 위주의 처리 방법은 비주얼 베이직의 윈도우 프로그래밍을 작성해 본 사람이라면
금방 적응할 수 있다.

비주얼 베이직에서 추가 요소로 추가하는 방법도
이곳에서 동일하다.

비주얼 베이직의 ADO 디비 연결을 해본 사람이라면 쉽게 공감할 수 있으며
3rd party 사용자들 또한 해당 내용에 대해 쉽게 공감할 수 있을것이다.




간단하나 프로그램 작성결과 .net 의 테두리에 있는 프로그램 언어 중 C#은
비주얼 베이직과 자바를 사용해본 사람은 쉽게 접근할 수 있다는 것을 알게 되었다.

간혹 비주얼 베이직을 사용하여 비주얼베이직 .net을 사용해야한다고 하는 사람이 있다면
C#을 사용해도 무관하다고 말해주고 싶다.

C#은 .net이 개발 되면서
새로 개발된 언어이기에 가장 최신 기조를 잘 반영하고 있다고 생각한다.

C# + ASP.NET을 사용하게 되면
.net으로 모든 프로그래밍을 사용할 수 있을 것이라 생각한다.

Name
Password
Homepage
비밀글 (Secret)
책 ~?
민성이 쪽 스터디 책은 멀로 정해진건가~?

그때 내가 왠지 끌리던 그책인가 ㅋㅋ

어여 올려주게

참고로 C#은 첨에 올린 책 그대로 갈예정
(왜냐면 내가 삿거던 ㅋㅋㅋ)

Name
Password
Homepage
비밀글 (Secret)
요즘 Windows 2008 서버의 Windows Server Virtualazation 이나오면서 CPL에 대한 애기를 한다.
종합해 보면 0레벨은 OS 3레벨은 User 로 나뉘는데 -1레벨을 두고 해당 레벨에서 Hyper Visor를 구동해 OS의 성능을 보장한다는 애기다.

Anyway~
CPU는 상태에 따라 접근 Address의 범위 제한하는 특권 레벨이 존제한다.
본디 특권 레벨은 0~3 까지 4개의 레벨이 존제 하지만, Windows의 경우 0, 3 두가지 레벨만 존제한다.
(2, 3 레벨은 장치 드라이버가 사용하지만, Windows 는 장치 드라이버가 0 레벨을 사용함으로 실제는 0 과 3 레벨만
존제 한다.)

그리고 특권 레벨이 높을 수록 머신을 컨트롤 하는 명령을 수행 할 수 있으며, 예를 들어 CPU를 중지 시키는 HLT 명령을 0 레벨 이외에서 실행 시키면 CPU는 예외을 발생 시킨다.

x86 CPU는 4G (2의 32승)의 주소공간을 세그먼트라는 몇개의 영역으로 분활 관리하는데, 각각의 세그먼트는 DPL 값을 설정할 수 있다. 즉 Windows 에서 DPL 값은 0과 3이고, CPU는 자신의 CPL 이하의 DLP을 갖는 세그먼트는 읽을 수 없다. 물론 CPL이 높은 경우 DLP이 낲은 코드를 읽거나 쓸순 있지만 실행은 불가능하다.

Name
Password
Homepage
비밀글 (Secret)
금요일날 민성이랑 교보가서 책을 보다보니
-_- 다 거기서 거기...-_-;;;;
확 맘에 드는 책 없음..
자바쪽엔 괜찬은 책들이 많이 보이던데 ...

주말에 빈둥되면서 100쪽까지 날림으로 책을 봤지만
역시 별거 없음.-_-;
자바랑 비슷하다고 생각하면 될듯..

결국 생각한 방법은
그냥 몇개 설명해주고 숙제 내주기..-_-;;;

역시 프로그래밍은 해보는게 최고 /ㅋㅋ

머 갠적으로는 C#의 경우 일반 문법은 자바와 비슷하고
win프로그래밍은 비베와 비슷해서 이질감이 없음..

.net 자체가 자바를 썬에 내주고
만든거라 그런지 자바 판박이...

이상 -_- 뒹굴되며 C# 접해본 내역 보고 완료..;;

BlogIcon MayStyle| 2007.10.22 12:25 신고 | PERMALINK | EDIT/DEL | REPLY
ㅎㅎㅎ 나 코딩 졸라 못하는데...
이해해 줄꺼지~~~ ㅋㅋㅋ
BlogIcon hotpoto| 2007.10.26 22:55 신고 | PERMALINK | EDIT/DEL | REPLY
흠... 앞으로 쳐지지 말고 노력해서... 형들 수준으로 올라가야 할텐데..캬캬
Name
Password
Homepage
비밀글 (Secret)