336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
'ISU 피겨 그랑프리 파이널' 시니어 여자 싱글 프리스케이팅 경기가 오늘 끝이 났다.
우리의 자랑스런 피겨 공주 연아가 은메달을 목에 걸어
약간의 아쉬움이 있지만 경기 내용은 아주아주 만족 스러웠다.
피겨가 스포츠라면 점수에서 차이가 나듯 마오가 잘했다고 할수 있다. 그러나 예술적인 관점에서 보면 연아와 비교가 되질 않았다.
그리고 홈경기라 연아에게 득이 될수 있다고들 했었는데,
내가 볼땐 어린 연아의 마음에는 더욱 큰 부담이었을 듯 하다.
왜~ 그런적 있지 않은가? 잘 보이고 싶은 사람들 앞에서 더 떨리고 이런적.. 말이다. 타국에서 경기 할때는 대부분의 응원관중에게 신경 쓸일이 없었을 테지만 이번 경기는 대부분의 관중이 연아에게 기대를 안고 보기 위해 온 사람들이었을 테니 한명 한명의 시선이 느껴졌을 것이다.
거기다 피겨 응원 예절이 안잡힌 것도 한 몫을 한듯 하다.
아무튼 이제 연아가 지나간 것은 잊고 다가 올 경기에서 더 좋은 모습을 봤으면 좋겠다. 그것이 연아의 장점이 아니었던가? 얼른 잊고 다음에 더 아름다운 모습 보도록 하자.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
jigging : 2008.11.21 16:17
미국전자 비자 받기 너무 쉽다고들 하지만 영어를 잘 모르시는 분들은 좀 헤메실수도 있습니다. 현재(2008/11/21) 아직 한국어 사이트가 준비가 되지 않아서 불편을 겪는 분들께 도움이 될까 올려봅니다.
참고로 저도 12월 신혼여행으로 미국을 가게 되어서 이렇게 접수를 하고 현재 승인을 받은상태입니다.
모쪼록 작으나마 도움이 됬으면 합니다.
의견들 보면 *빨간색 별표시만 해도 되다는 다른분들의 의견이 많은데 왠만하면 빠짐없이 다 기재 하는것이 나중을 위해서라도 좋다고 생각하여 전부다 기재 할것입니다.
시작해볼까요?
준비 사항
1. 6개월 이상 남은 전자여권 - 구청에 가셔서 신청서 작성하시고 사진 붙이고 5만원 인가 주면 2틀후에 나옵니다.
2. 인터넷 가능 컴퓨터 - 왠만함 안멈추고 문제없는걸로
3. 영어 사전 - 혹시 모르니....만약을 위해
4. 본인이 체류 할 미국의 간단한 주소 및 도시이름 (영문) - 솔직히 이것은 꼭 정확하게 적으실 필요는 없습니다. 대충 인터넷에서 아무 미국 호텔 주소 가져다가 올려도 되고 그냥 기재안하고 넘어가셔도 되지만 만약 기재 하셨다면 적은 주소는 반드시 따로 필기 하셔서 미국 도착시 출국심사때 물어볼지도 모르니 소지하시길 바랍니다.
클릭 하시면 자그만한 네모 영어로 막 써인 창 뜨고 아래 확인 버튼이 있습니다. 별거 아니니 그냥 클릭 하십시요.
그럼 새로운 창으로 이동되면서 맨위에 WELCOME 써있고 아래 step1, step2...어쩌고 써있지만 무시 하십시요
창 아래로 내려서 보시면 녹색 박스 안에 왼쪽은 Apply , 오른쪽은 Update or Check status 라는 클릭 버튼이 보입니다. 왼쪽 apply은 비자를 처음 신청을 의미 하고 오른쪽은 나중에 신청후 변경 사항이나 입국허가 여부를 확인 하는곳입니다.
당연히 처음 시작하시는분은 apply 를 크릭 하십시여.
그럼 맨 위에 Disclaimer 크게 써있고 아래로 내리시면 Yes, No 라고 체크 하는부분이 있습니다. Yes 에 체크 하시고 Next를 클릭 하십시요. (전반적인 사항을 이해한다라는 내용)
자이제 첫 이제부터 시작입니다. 빨간색 * 은 중요한 부분이니 신경써서 기재 하십시요.
그리고 왠만하면 영문 대문자로 표기 하세요
1. Family Name - 여권에 나와 있는 영문 성을 적으세요.
2. First (Given) Name - 여권에 나와 있는 영문 이름을 적으세요 (성 제외)
3. Day - 여권에 기재된 생일 날짜만 찾아서 바꿔주세요.
4. Month - 여권에 기재된 생일 달 을 찾아서 바꿔주세요 맨 위에 January 부터 1월이며 쭉 내려 갑니다.
5. Year - 여권에 기재된 생일 년도수를 찾아서 바꿔주세요
9. E-Mail Address - 본인이 사용하는 이메일 주소 (없슴 안해도됨)
10. Country Code - 전화 번호중 한국의 국가번호 를 찾는겁니다. 한국은 Korea (South) (+82) 되어 있으니 그곳에 표시하시길 바랍니다. 바로 위에거 북한인데.. 혹시 실수라도 그곳에 표시 하지마세요.
11. Number - 지역번호 포함한 전화번호 핸폰 번호 가능
12. Passport Number - 여권에 기재되어 있는 여권 번호
13. Passport Issuing Country - 여권 발급 국가 SOUTH KOREA로 표시
14. Passport Issuance Date - 여권에 나와 있는 여권발행 일, 월, 년도 표시
15. Passport Expiration Date - 여권 만기일 일,월,년도 표시
16. City Where You are Boarding - 비행기 출발 도시 - 보통 인천공항에서 출발하니 INCHEON 이라 표시함 됨
17. Carrier Code - 미국 가는 비행편을 적는것인데 굳이 안적으셔도 상관 없다고 하지만 찜찜 하시다면 아시아나 항공이나 대한항공 사이트 들어가셔서 희망 하는 출발일자 확인 하셔서 둘중 한군데 표시 해놓으세요 아시아 항공은 ASIANA AIRLINES 대한항공은 KOREAN AIR 찾으셔서 표시해놓으세요.
18. Flight Number - 편명을 쓰시면 됩니다. 예) OZ 204
19. Address Line 1- 미국 체류 하실 주소를 적습니다. 미국에서 체류하실 주소가 확보가 되지 않았다면 보통 네이버 같은데서 미국 호텔 혹은 가시는 도시이름의 호텔 찾으셔서 거기 홈페이지에 나온 현지 주소를 옮기셔도 됩니다. (* 단 기재 하신 주소는 반드시 따른곳에 적어두셨다가 미국현지에 도착하여 입국심사시 물어볼경우 제시 하셔야합니다)
20. Address Line 2 - 위칸의 주소지 자리가 모자를 경우 표시
21. City - 체류 할 도시 영문 이름 예)LOS AGELES
22. State - 체류 하실 주 이름을 찾아서 표시
이후 A,B,C,D,E,F,G 는 질병이 있거나, 범죄를 저지른 일이 있거나, 미국비자 거부당한적이 있었나 하는 질문입니다. 모두 NO 로 체크하시는게 좋습니다.. 혹시라도 사실대로 쓰고 싶으실경우 아래글을 보고 판단하여 표시해주세요.
A, - 질병이 있는지 물어보는내용
B. - 범죄를 저질러 체포 된적이 있거나 하는 질문
C. - 과거에 테러나 독일 나찌 에 관련된 단체 소속되어 있는적있는지 하는 질문
D. - 미국에 와서 일을 할 의사가 있는지 물어보는 내용 ( 불법체류성을 물어보는 내용이니 그냥 NO로 하심이 )
E. - 자세히는 모르겠으나 과거에 어렸을때 미국 시민권을 받은적이 있는지 물어보는듯 (그냥 NO 하셈)
F. - 과거에 미국 비자 거부 당한적이 있는지.. 있으면 YES 하시고 WHEN - 언제? WHERE- 어디서? 표시
G. - 반정부 단체에 가입 되어 있는지...
이후 다 되셨으면 Certification 란에 표시 하시고 NEXT 눌르세요.
그럼 창이 바뀌면서 본인이 기재 한 확인란이 쭉 나옵니다. 훑어 보시면서 맞는지 확인 하시고 맞다면
아래쪽에 홀로 그램으로 알파벳이 적혀 있습니다.
그 알파벳데로 아래 빈칸에 넣으신후 APPLY를 힘차게 클릭 해주세요.
그후 화면이 전환 되면서 Application Number 가 나올겁니다. 이건 비자 신청 번호인데 영문과 숫자가 혼합된 10글자 이상된 코드입니다. 중요한거니 다른곳에 잘 받아 적어 두세요.
자 이제 다 됬습니다. 이제 비자가 잘 나왔는지 확인 하는 순서가 남았는데요. 누구 보통 몇분만에 누구는 몇일만에 확인이 가능 하다고 하는데 넉넉이 잡아 5시간 이상 후에 확인 해보심이 좋을것 같네요. 전 밤에 신청해서 다음날 낮 12시에 확인 하였습니다.
라는 제목과 함께 아래 Authorization Approved 라는 글자가 나오면 비자 승인이 된것 입니다. APPROVED가 승인이 라는 뜻인데 이외에 다른 글자가 나오면 한번 사전 찾아서 확인 해보세요. 승인 거부는 받아본적이 없어서 뭐라 표시 된지 모르겠네요.
여기서 중요한게 오른쪽 코너 보면 PRINT 라는 문구와 종이 그림이 있습니다. 크릭 하시면 창이 새로 뜨면서
ESTA Application: 번호-번호
Authorization Approved
Your travel authorization has been approved and you are authorized to travel to the United States under the Visa Waiver Program. This does not guarantee admission to the United States; a Customs and Border Protection (CBP) officer at a port of entry will have the final determination.
Application Number
Expiration Date
19/11/2010
이런식으로 되어 있습니다. 요걸 프린트 하시고 프린트가 안되신다면 위에
ESTA Application: 번호-번호은 필히 적어두세요 입국승인 번호 입니다.
그리고 밑에 EXPIRATION DATE 는 향후 기재 되어 있는 날짜 동안미국 입국이 가능 하다는 것입니다.
저위에 있는 날짜를 예를 들면 2010년 11월 19일 까지 가능 하다는겁니다.
이제 다 됬다고 생각 되지만 혹시 몰라서 아까 비행기 편 과 주소 아무렇게나 쓰신분들을 위해 수정 하는 방법 들어 갑니다.
현재 창에서 보시면 맨 아래 3개의 클릭 버튼이 있습니다. 그중 UPDATE를 클릭하시면
미국 현지 체류 주소 - 편명 - 이메일등을 수정 하실수 있습니다. 수정 완료 하시고 아래 SUBMIT 클릭 하시면 완료 됩니다.
이미 입국 승인이 나왔다고 해도 변경 해도 상관없습니다. 비자 승인에 대한 영향은 끼치지 않습니다.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
*** 스레드 실행 제어
*스레드 생성시..
*pThread=AfxBeginThread(pfnThreadProc,pParam,nPriority,nStackSize,dwCreateFlags, lpSecurityAttrs);
dwCreateFlags = 0; // 스레드 생성시 바로 시작
dwCreateFlags = CREATE_SUSPENDED; //스레드가 멈춰진 상태에서 실행
pThread->SuspendThread(); // 스레드 동작 stop
pThread->ResumeThread(); // 스레드 다시 실행
*스레드 쉬게 하기
Sleep(1000); //1초동안 스레드의 CPU 점유 X
Sleep(0); //우선순위가 높거나 같은 스레드에게 CPU 사용권이 넘어감.
CPU를 과다하게 사용할 우려가 있는 루틴에 사용하여 다른 스레드도 CPU를 쓸 수 있도록 하기 위함
*스레드 종료
[ 방법1] 주 프로세스에서 TermivateThread 호출
--> 주 프로세스에서 스레드를 강제로 종료시키면 스레드는 자신이 사용했던 메모리를 해제하는 일 등의 정리 작업을 할 기회 없이 갑자기 죽어버릴 수 있음
[방법2] 외부에서 플래그만 설정하여 스레드에게 종료되어야 한다는 사실을 알리면 스레드가 알아서 종료
UNIX "adb" command 는 가장 오래되고 가장 쉽게 얻을 수 있는 UNIX debuggers 이다.
비록 adb 가 GUI 와 같은 특성을 갖지 못하고 source code 에 직접적인 작업을 하지
못하더라도 아주 간단하며 UNIX gurus사이에서 kernel debugger 로 받아들여 진다.
adb 는 kernel crashes 의 시험에만 제한되지 않으며 user program과 application
packages 의 문제를 찾는데도 유효한 tool이다.
'adb(absolute debugger)'라는 이름은 adb가 global symbols와 보통 hexadecimal
인 absolute address를 다루는 사실에서 지어졌다.
adb는 source files,line numbers,local variables,internal function label을 알지
못하며 assembly language와 복잡하지 않은 C code에서 최적으로 작업한다.
adb 는 단순히 이해한다면 하나 또는 두 문자 명령어로서 live system상의 process의
실행을 제어하고 adb의 동작을 제어하며 file이나 memory의 내용을 여러가지 다른
숫자(numerous)형식으로 display한다.
adb는 system crashes 에 의해 만들어진 postmortem file과 live kernel의 작업에
알맞다.
adb는 간단하고 단순한 본성이 있는 반면 adb macor라는 강력한 기능을 제공한다.
= The kernel resident absolute debugger,kadb
kadb 의 특징은 UNIX kernel 대신 booting 할 수 있으며 kernel absolute debugger
이다.
kadb로 boot up 된 후 kernel을 load하고 실행 시킬 수 있다.
그리고 살아 있는 상태에서 kernel을 수정하고 test할 수 있으며 breakpoints의
setting을 가능하게 해 준다.(주-breakpoint란 프로그램이 실행이 중단되어 시스템의
상태,변수들의 값 또는 기억장소의 내용등과 같이 프로그램의 현재상태를 알아볼 수
있는 지점,이러한 중단점은 프로그램의 내용을 debugging 하기위해 사용)
kadb도 macro facility를 가지고 있으나 adb macro 특성과 다르다. kadb에 유효한
macro는 kadb가 실행 가능하도록 새로 만들어져야 한다.
system 이 kadb 로 떨어지면, 다시말해 kadb prompt를 보게되면 모든것이 stop된다.
더이상 윈도우를 사용할 수 있으며 background process를 수행 할 수없으며,console
에서 kadb를 수행하고 있는 사람외엔 system에 access할 수 없다.
= adb hardware & software requirements
adb를 사용하여 savecore files를 분석하기위해 savecore files를 같은 kernel arch.
와 같은 operating system release를 가진 system으로 옮기는 것이 최선이고 가장
간단한 방법이다. 물론 crashed된 시스템 자체에서도 system이 backup되고 running
한다는 것을 가정하에 분석이 가능하다. (note- libraries,programs,directory 등의
조작을 통해 다른 kernel arch와 OS로부터 postmortem files의 분석이가능하다.)
system의 kernel architecture와 OS는 /usr/ucb/arch -k 또는 uname -a command로
알아볼 수 있다.
= Architecture & OS mismatched: Some adb error messages
서로다른 kernel architecture 또는 OS로부터 kernel의 crash dump상에 adb를 시도
하면 아래와 같은 여러가지 error messages를 보게된다.
"Cannot adb -k: vmunix.0 : not a kernel namelist"
SUN4/400 OS4.1.3 의 crash dump file을 SS20,solaris2.3에서 adb를 실행
위 성공적인 예에서 보듯 adb는 memory의 pages 의 숫자를 display 한 후
우리의 첫번째 command를 기다린다.
= The distribution of adb
adb program은 solaris 1.x systems 의 debugging group의 일부분에 속해있다.
Solaris 2 systems에서는 adb는 보다 module화 되어 4개의 packages 에 분산
되어 있다.(man page는 제외)
@ SUNWcar : kadb found
@ SUNWkvm : adb & adb macros
@ SUNWtoo : adb 가 /usr/bin에 link되며 savecore와 strings program을 포함
@ SUNWesu : adbgen utility 를 포함 adbgen 은 프로그래머가 adb macros를
만들 수 있게 도와주는 utility이다.
= The different uses of adb & kadb
core 를 dump시킨 user program을 살펴 보거나 crash가 발생한 postmortem
file을 시험하기 위해서 adb를 사용하려면 object file과 core file을 함께
사용하여야 한다.
- The object file
실행 가능한 object file은 program이나 kernel이 될 수 있는데 이 file은
symbol table과 실행가능한 code를 담고 있다.symbol table은 필요하지는
않지만 그것이 없으면 adb의 symbolic 특성을 사용할 수 없다.
default object file은 a.out이다.
symbol table은 adb 또는 다른 debugger가 symbolic name과 real address를
matching 할 수 있게 한다.adb가 전혀 관심이 없더라도 hexadecimal
address 보다 변수나 function들이 이름을 가지는 편이 사림들에게 보다나은
반응을 줄 것이다.
- The core file
kernel이나 program의 postmortem 분석에서 실패가 일어난 순간에
kernel이나 프로그램에 의해 사용된 memory 의 sanpshot을 나타내는
image file이 core file 이며 default는 core이다.
live system 이 보여질때는 core file은 kernel에 의해 현재 사용되는 memory의
반영이다.
만약 어떤 이유로든 object file과 core file 중 하나라도 없는 경우 adb를
일으켰을때 command line 상의 자리에 dash "-"를 명시할 수 있다.
- Using adb on crash dumps
core file은 error의 원인과 위치를 규정하기 위해 실행 file 과 함께 시험될 수
있으며 adb가 assembly code 와 함께 작업하기 때문에 프로그램의 source code가
없더라도 많은 작업을 할 수 있다.
savecore files 은 physical memory 의 전체내용이 아니더라도 보통 모든 kernel
data space를 포함한다.
adb -k flag 는 crash dump savecore files 이나 live system의 분석에 사용된다.
왜냐면 adb는 kernel data space 에 대한 많은 address translation 작업이 많이
필요하기 때문이다.(주- -k flag는 kernel memory mapping을 수행;system crash
dump 또는 /dev/mem,또는 sapfile을 사용할 때 사용)
- Using adb on live systems
adb는 postmortem files만 debugging 되는 것이 아니다.
adb는 보다 나은 performance를 얻기 위해서 running system을 수정하거나 조정할
수 있다.
adb는 또한 system의 behavior를 차기 boot 시에 바꾸기 위해서 klernel을 수정하
는데도 사용할 수 있다.
default로 adb는 object와 core file를 읽거나 볼 수 밖엔 없다.
그러나 adb를 일으킬 때 -w flag를 쓰거나 adb에서 $W command를 쓰면 write할 수
있다.
- The kernel resident absolute debugger,kadb
live system을 debug할 위치에 있다면 kadb를 사용할 수 있다.
kadb는 operating system대신에 debugger로 초기booting하여 kernel의 나머지를
load하거나 start시킬 수 있도록 만들어져 있다.
어떤것이 panic을 일으켰을때 system이 죽는 상황에서 kadb는 system을 접수하고
얼마간 system을 떠날 수 있다. 이 시점이 kadb 가 우리와 함께 일 할 준비가 된
것이다.
kadb의 대화적 특성은 주요한 이점이다.
kadb를 사용하여 kernel의 breakpoint를 설정해서 마치 커다란 user program과 같이
단계적으로 실행시키고 values를 수정하여 test할 수 있다.
adb를 사용하여 postmortem files를 다룰때는 위와같은 level의 interaction은 준비
되지 않는다.
- adb macros & /usr/lib/adb
비록 adb가 매우 제한된 명령어의 sets을 가지고 있지만 macros로 알려진 상당히
강력한 명령어의 combinations 을 가지고있다.
adb macros는 common commands의 set을 만들고 저장하고 invoke할 수 있게하며
다른 macro를 call할 수 있게 design되어 졌고 최소의 노력으로 강력한 분석을
가능케 한다.
많은 수의 macro files가 solaris 1에서 /usr/lib/adb 안에 준비되어 있다.
Solaris 2 system은 /usr/kvm/lib/adb 에서 adb macros를 찾을 수 있다.
대부분의 macros는 SUN에 의해 준비되어 kernel으로부터 통상적으로 필요한 구조를
읽기쉬운 형식으로 print out 하는데 사용된다.
----------------
| adb a.out core |
----------------
-----------------
| adb myprogram - |
-----------------
user program을 시험하기위해 adb를 invoking 할때의 syntax는 위와같다.
만약 core file이 명시되지 않으면, adb는 현재 directory의 core file을
찾는다.
core file대신 "-"(dash)가 명시되면 adb는 object file을 실행하기위해
system memory를 사용한다. 이와같은 사용법은 추후 "Symbol Tables"에서
살펴보자.
executable image 안에 symbol table 이 없으면 adb는 변수 또는 function
들을 이름에 의해 명시할 수 없다.
이경우 error의 위치를 찾기가 극단적으로 어렵다.
만약 stack traceback 또는 memory 의 시험에서 reports가 오직 hexadecimal
로 되어 있으면 object file로 부터 symbol table이 제거된 상태가 아닌지
check 해보아야 한다.
symbol table의 제거는 UNIX strip command로 가능하지만 한번제거된
symbol table은 복구가 불가능 하다.
- Examining system crash dump postmortem files
--------------------------
| adb -k unix.X vmcore.X |
--------------------------
Solaris 1 system 에서는 object file은 vmunix.X 이며 여기기서 X는 savecore
program이 할당한 crash number이다.
Solaris 2 system에서는 object file은 unix.X라 불리며 여기서의 X도 savecore
에 의해 할당된 crash number이다.
여기엔 crash file 이 없으며 object file 은 booting되고 실제적인 실행 kernel
인 /vmunix 이다. core file 인 /dev/mem 은 현재의 physical memory의 내용이다.
/dev directory 에는 두개의 memory file이 있다.
/dev/mem , /dev/kmem 이 그것이며 서로다른 목적으로 adb와 함께 오직 한가지만
쓰인다.
/dev/kmem device file은 현재 running kernel 에 대한 "kernel virtual memory"
로서 kernel space의 virtual address 만 받아들인다.
/dev/mem device file은 actual physical memory에 대응된다.
adb가 physical memory pages의 copy로 부터 만들어진 core file을 찾도록 되어
졌기 때문에 data 를 위치하기 위해서 내부적으로 physical 에서 virtual address
translations를 자동으로 수행한다.그러므로 physical memory에 대응되는 file을
adb 에게 제공해야 한다.
- Examining a live system:Solaris 2
-----------------------------
| adb -k /dev/ksyms /dev/mem |
-----------------------------
Solaris 2 system은 kernel level에서 Solaris 1 system과 매우다르다.
kernel 은 보다 module화 되어 다양한 조각으로 memory로 적재되며 그것이 꼭
같은 directory 같은 file에서 올 필요가 없다.
/kernel/unix 는 Solaris 1 의 /vmunix file과 가장 비슷한 것으로 전과달리
system의 heart또는 "core" 이며 다른 loadable module이나 device에 대한
symbol은 포함하지 않는다.
새로운 pseudo-device /dev/ksyms 는 system에 현재 적재된 모든 module의 symbol
table 에 대응된다.
또한 /dev/ksyms device 가 open 되었을때 적재되지않은 module로 부터 module을
보호한다. 이것은 우리가 analyze 하는 동안 symbol table을 보증해준다.
그러나 module이 요구에 의해 적재된 이후로 우리가 여기저기 뒤지는 가운데 이전에
요구되지 않은 sections 를 disk로부터 가져옴에 따라 kernel은 계속 size가 커질
것이다. 그래서 새로운 symbols이 더해질 것이나 /dev/ksyms 가 open 되어 있는동안
에전것은 사라지지 않을 것이다.
= Security issues
Solaris 1 system에서는 group 2 ( /etc/group file에 kmem group ) 에 추가되어진
nonroot user는 running kernel에 adb를 사용할 수 있으나, Solaris 2 system에선
kernel을 수정하고 검사할 수 있도록 허가된 nonroot user는 없다
RECENT COMMENT