장고 프로젝트를 생성하기위해 projects 라는 폴더를 만든다.

stdiohan@stdiohan-MacBookPro  ~ % mkdir projects
stdiohan@stdiohan-MacBookPro bin % source activate
(mysite) stdiohan@stdiohan-MacBookPro bin % cd
(mysite) stdiohan@stdiohan-MacBookPro ~ % cd projects 
(mysite) stdiohan@stdiohan-MacBookPro projects % mkdir mysite
(mysite) stdiohan@stdiohan-MacBookPro projects % cd mysite
(mysite) stdiohan@stdiohan-MacBookPro mysite % django-admin startproject config .

projects폴더를 만든후 가상환경을 실행한후 다시 projects 폴더로 가서 가상환경에 mysite 폴더를 새로 만들어준다. 그 후 django-admin startproject config . 명령어를 실행해 프로젝트를 생성한다.

(mysite) stdiohan@stdiohan-MacBookPro mysite % python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
October 10, 2022 - 15:27:00
Django version 4.0.3, using settings 'config.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

python manage.py runserver 명령어를 실행해 mysite를 구동한다. 마지막 줄에 장고서버가  http://127.0.0.1:8000/ 로 시작되었고 서버를 종료하기 위해선 CONTROL-C를 입력하라는 뜻이다. 주소창에 http://127.0.0.1:8000/ 를 검색해보자.

이 화면이 뜬다면 성공한것이다

가상환경에 진입을 편하게 하기 위해서는 홈 디렉토리의  ./zshrc 파일에 다음과 같은 alias 를 추가하면 된다고한다.

alias mysite='cd /Users/<사용자명>/projects/mysite;source  /Users/<사용자명>/venvs/mysite/bin/activate

alias 를 위와 같이 등록하면 터미널 재실행후 아무곳에서 mysite를 입력하면 가상환경으로 진입된다.

alias 는 별명을 지어주는 파일,명령어라고 볼수있다.

.zshrc 파일이 없을경우 홈 디렉토리에 nano ./zshrc 로 파일을 새로 만들어 주어야한다.명령어를 적을때 화면을 작게한채로 적게되면 강제로 줄바꿈이 되어 제대로 적용이 되지 않는 경우가있다. 강제로 줄바꿈이 되지 않게 유의하며 적어야 제대로 작동된다.

'Django > 따라하는 장고' 카테고리의 다른 글

5. 장고 모델 작성법  (0) 2022.10.13
4. 파이참의 기본 요소  (0) 2022.10.12
3. 파이참 사용하기  (0) 2022.10.11
1. 파이썬과 장고설치  (1) 2022.10.10
0. 따라하는 장고  (0) 2022.10.10

장고는 파이썬으로 만들어진 웹 프레임 워크 이므로 파이썬 설치가 필수이다. 나는 맥북으로 만들기 때문에 맥으로 다운을 받아보겠다.

www.python.org 파이썬 공식홈페이지에 들어가 맥OS 파이썬 최신버전을 다운받는다.

맥OS 파이썬을 설치한다

 

다운로드를 완료 한 후에 터미널에서 

stdiohan@stdiohan-MacBookPro ~ % mkdir venvs
stdiohan@stdiohan-MacBookPro venvs % python3 -m venv mysite

이렇게 명령어를 진행하면  파이썬 모듈중 venv 라는 모듈을 사용한다는 의미이다. mysite 는 가상환경의 이름이다.

stdiohan@stdiohan-MacBookPro venvs % cd mysite/bin
stdiohan@stdiohan-MacBookPro bin % source activate
(mysite) stdiohan@stdiohan-MacBookPro bin % 

다음의 명령어를 수행하면 가상환경으로 진입할 수 있다. 왼쪽에 (mysite) 라는 프롬포트를 확인해보면 알수있듯이 가상환경에 진입한 모습이다.

(mysite) stdiohan@stdiohan-MacBookPro bin % deactivate 
stdiohan@stdiohan-MacBookPro bin % 

deactivate 로 가상환경을 빠져 나올수 있다.

 

이제 다시 가상환경에 진입해 장고를 설치한다.

(mysite) stdiohan@stdiohan-MacBookPro bin % pip install django==4.0.3
Collecting django==4.0.3
  Downloading Django-4.0.3-py3-none-any.whl (8.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.0/8.0 MB 4.5 MB/s eta 0:00:00
Collecting sqlparse>=0.2.2
  Using cached sqlparse-0.4.3-py3-none-any.whl (42 kB)
Collecting asgiref<4,>=3.4.1
  Using cached asgiref-3.5.2-py3-none-any.whl (22 kB)
Installing collected packages: sqlparse, asgiref, django
Successfully installed asgiref-3.5.2 django-4.0.3 sqlparse-0.4.3
(mysite) stdiohan@stdiohan-MacBookPro bin % python -m pip install --upgrade pip
Requirement already satisfied: pip in /Users/stdiohan/venvs/mysite/lib/python3.10/site-packages (22.2.2)

pip install django==4.0.3 명령어를 실행해 장고 4.0.3을 다운받고 python -m pip install --upgrade pip 명령어를 다시 실행해 장고를 최신버전으로 업그레이드 해준다

'Django > 따라하는 장고' 카테고리의 다른 글

5. 장고 모델 작성법  (0) 2022.10.13
4. 파이참의 기본 요소  (0) 2022.10.12
3. 파이참 사용하기  (0) 2022.10.11
2. 장고 프로젝트 생성  (0) 2022.10.11
0. 따라하는 장고  (0) 2022.10.10

나는 장고에 관하여 아무것도 알고있는 지식이 없다. 이 상황에서 장고를 이용해 웹페이지를 만들기위해 튜토리얼을 찾아본 결과 

https://wikidocs.net/book/4223

 

점프 투 장고

**점프 투 장고 오프라인 책 출간 !! (2020.12)** * [책 구입 안내](https://wikidocs.net/105844) 점프 투 장고는 파이 ...

wikidocs.net

이 글을 그대로 따라해 나만의 웹페이지를 만들어보는 것이 나의 목표이다.

 

이 글을 따라서 실습을 진행하며 동시에 블로그를 작성하고 또 블로그를 처음하다보니 본문의 내용이나 진행방식, 말투 등이 비슷해지거나 같아지는 경우가있다. 이는 튜토리얼을 따라해 마치 내가 튜토리얼을 만들어 독자들에게 알려주고 베포해 이득을 취하려는것이 아니므로 오해하지 않았으면한다. 나도 장고를 처음부터 따라가는 입장이다. 

 

맥OS 환경에서 진행하는 프로젝트이다.

'Django > 따라하는 장고' 카테고리의 다른 글

5. 장고 모델 작성법  (0) 2022.10.13
4. 파이참의 기본 요소  (0) 2022.10.12
3. 파이참 사용하기  (0) 2022.10.11
2. 장고 프로젝트 생성  (0) 2022.10.11
1. 파이썬과 장고설치  (1) 2022.10.10

생능출판사 명품 운영체제

 

본 연습문제들은 작성자 본인이 푼것이라 틀릴 수 도 있습니다.

 

[개념체크]

 

1. 컴퓨터 시스템에서 주소를 발생시킬 수 있는 하드웨어를 있는대로 골라라.

CPU

 

2. CPU의 주소 선이 총 24개가 있다면 이 CPU가 액세스 할 수 있는 메모리의 최대 크기는?

16MB : 2^24 = 16MB

 

3. 캐시 메모리가 있는 컴퓨터에서 CPU가 실행할 명령어와 코드가 반드시 있어야 하는 곳은?

캐시메모리

 

4. 다음 CPU 레지스터 속에 저장된 값의 의미는 무엇인가?

(1) PC 레지스터 : 다음 실행할 기계 명령의 메모리 주소

(2) IR 레지스터 : 실행을 위해 메모리에서 읽어온 명령이 저장된 레지스터

(3) SP 레지스터 : 스택의 꼭대기 메모리 주소 저장

 

5. 현재 실행 중인 프로그램에 관한 일체의 실행 상황 정보를 부엇이라고 하는가?

컨텍스트

 

6. 컨텍스트 스위칭이란?

현재 실행중인 프로그램을 중단시키고 CPU에게 다른 프로그램을 실행시키는 행위

 

7. 운영체제가 지원하는 서비스를 응용프로그램이 활용할 수 있도록 해주는 소프트웨어 인터페이스를 무엇이라고 부르는가?

 시스템호출

 

8. 다음 중 운영체제의 목적이 아닌 것은?

컴퓨터에 장착된 여러개의 CPU를 다 활용하지 않고 최소 개수의 CPU로 프로그램을 실행시켜 CPU를 아껴 사용할 수 있도록 한다

 

9. 운영체제를 구성하는 요소가 아닌 것은?

④ 컴파일러

 

10. 디바이스 드라이버에 대한 설명 중 틀린 것은?

① 디바이스 드라이버는 호환성이 뛰어나서 Windows에서 작성된 마우스 드라이버를 리눅스에서도 사용할 수 있다

 

11. 메모리 공간을 사용자 공간과 커널 공간으로 나누는 이유는?

① 응용프로그램이 적재되는 공간과 커널 공간을 분리하여 커널 공간에 대한 응용프로그램의 직접 접근을 막아 보호하기 위해

 

12. 사용자 공간과 커널 공간에 대해 말한 것중 틀린 것은?

④ 응용프로그램이 커널 공간에 쓰는 것은 금지되어 있지만 읽는것은 허용된다 (둘다 안됨)

 

13. 응용프로그램이 커널에 작성된 코드를 활용할 수 있는 방법은 무엇인가?

① 시스템 호출

 

14. 사용자 모드와 커널 모드에 대한 설명 중 틀린것은?

③ 사용자 모드에서는 커널코드 중 허용된 코드만 엑세스 할 수 있다.

 

15. 다음은 무엇에 대한 설명인가?

<입출력 장치나 타이머, 인터럽트 처리, 시스템 중단 등 사용자 모드에서는 사용할 수 없고, 커널 모드에서 사용할 수 있는 특별한 CPU 기계 명령>

③ 특권명령

 

16. 특권 명령이 사용되는 경우가 아닌 것은?

시스템 호출 명령

 

17. 다음 중 같지 않은 용어는?

감독자 호출(인터럽트)

 

18. C 프로그램에서  printf("hello"); 의 실행에 대헤 잘못 설명한 것은?

③ printf()는 직접 디스플레이어에 출력하는 함수다

 

19. 인터럽트에 대한 설명 중 틀린 것은?

① 인터럽트가 발생하면 CPU의 실행모드를 굳이 커널모드로 변경할 필요없이 현재 모드에서 인터럽트 서비스 루틴이 실행 된다

 

20. 운영체제의 커널코드를 장치와 무관하게 개발할 수 있도록 하는것은 어느요소의 역할 인가?

③ 디바이스 드라이버

 

21. 응용프로그램을 운영체제와 무관하게 작성할 수 있도록 하는것은 어느 요소의 역할인가?

① 표준 라이브러리

 

22. 시스템호출에 대한 설명중 틀린 것은?

③ 응용프로그램은 시스템 호출을 통해 커널 프로세스에게 커널코드를 실행해 줄것을 요청한다

 

23. 시스템 호출에 대해 잘못 설명한 것은?

④ 시스템 호출은 커널코드를 실행시키기 때문에 응용프로그램 개발자의 입장에서 프로그램의 실행 속도를 높이는 매우 좋은 방법이다.

 

24. 표준라이브러리 함수와 시스템 호출 함수들에 대한 설명으로 틀린것은?

④ 응용프로그램 개발시 표준라이브러리 함수보다 시스템 호출 함수를 사용하면 응용프로그램의 실행속도를 높일 수 있다

 

[복합문제]

 

1. 응용프로그램을 작성할 때 표준 라이브러리 함수(예 : printf())를 호출하는 것이 시스템 호출 함수(예 : write())를 호출하는 것보다 나은 방법인 이유를 설명하라.

시스템호출에는 긴 시간이 걸린다. 코드에 따라 표준라이브러리 함수를 이용하는것이 시스템 호출을 더 적게 사용할 수 가 있다

 

2. 인터럽트 서비스 루틴이 커널영역에 있어야 하는 이유가 무엇일까?

인터럽트가 입출력장치와 CPU가 동시에 각자의 일의 실행을 요청하기 위해 CPU가 직접 요청받기 때문이다

 

3. 컴퓨터 시스템과 운영체제의 목표는 CPU의 활용률을 극대화 하는데 있다. 인터럽트는 이 목적을 달성하게 하는데 중요한 역할을 한다. 인터럽트가 어떤식으로 CPU 활용률을 높이는데 기여하는가?

인터럽트가 있어서 CPU에게 다른 프로세스를 실행하도록 하고, 인터럽트를 통해 입출력의 완료를 인지하면 입출력을 기다리는 프로세스를 준비상태로 깨워 다음 스케줄 때 실행시키는 전형적인 다중프로그래밍 구현가능. 인터럽트는 입출력장치와 CPU가 동시에 각자의 일을 실행하게 하여 컴퓨터 시스템이 효율적으로 작동하게 한다. CPU를 보다 효율적으로 사용하여 CPU 활용률을 높이고 시스템 처리율을 높인다

 

4. 탐구 2-2의 소스 코드를 수정하여 디스플레이에 "I love OS"를 출력하는 프로그램을 작성하고 실행시켜라. 프로그램을 ilove.os 파일에 작성하고 다음과 같이 컴파일하고 실행하면 된다.

$ gcc -c iloveos..s && ld iloveos.o
$./a.out
I love OS
$

 

hello.s 를 수정한 내용

생능출판사 명품 운영체제 

 

본 연습문제들은 작성자 본인이 푼것이라 틀릴 수 도 있습니다.

 

[개념체크]

 

1. 운영체제의 기능과 거리가 먼 것은?

④ 컴파일

 

2. 운영체제의 특징과 동떨어진 내용은?

① 운영체제의 기능이 자원을 관리하는 것이지만, 운영체제가 컴퓨터의 모든 자원을 관리하지는 않는다

 

3. 고정 프로그래밍 방식을 설명하는 것으로 틀린 것은?

② 운영체제가 한 번에 한 개의 프로그램만 실행시키는 방식이다

 

4. 모바일 운영체제의 특징이 아닌것은?

③ 대표적으로 PSOS, VxWorks, VRTX, RT-Linux, Lynx 등이 있다

 

5. 내장 프로그래밍 방식의 출현이 획기적인 이유가 아닌 것은?

④ 오늘날 운영체제가 출현되었다

 

6. 운영체제의 태동이 된 기능은?

② 프로그램 적재 기능

 

7. 초기 운영체제가 나타나게 된 동기가 아닌 것은?

④ 비싼 메모리를 효율적으로 사용하기 위해

 

8. 최초의 운영체제 GM-NAA I/O에 구현된 기능은?

① 프로그램 적재 기능

 

9. 내장 프로그램 컴퓨터의 특징과 관계없는 것은?

② CPU와 메모리의 구분 없는 고정 프로그래밍 방식

 

10. 배치 시스템에 대한 설명으로 옳은 것은?

① 모여진 작업을 순서대로 하나씩 연속하여 처리하는 시스템

 

11. 다중프로그래밍을 정확히 묘사한 것은?

② 메모리에 여러 프로그램을 올려놓고 한 프로그램이 입출력을 수행하면 CPU에게 다른 프로그래밍을 실행시켜 CPU 활용룰을 높이는 기술

 

12. 다중프로그래밍이 출현한 동기는?

① 배치 운영체제의 저조한 CPU 활용률을 개선하기 위해

 

13. 다중프로그래밍 기법은 여러 프로그램을 메모리에 올려놓고 동시에 실행시키기 때문에 해결해야할 많은 운영체제 이슈와 과제들이 생기게 되었다. 다음 중에서 이슈들을 골라라.

[인터럽트, 다른 프로세스의 메모리 영역을 침범하지 못하게 하는 메모리 보호, 프로그램 당 메모리 할당 위치와 크기에 관한 전략, 교착상태, 자원에 대한 프로그램들 사이의 동기화, CPU 스케줄링]

 

14. 개인용 컴퓨터의 출현 동기가 아닌 것은?

④ 전화로 미니컴퓨터에 원격 접속하는 비용 부담 해소

 

15. 시간 할당량 단위로 돌아가면서 프로그램에게 CPU를 할당해주는 운영체제는?

① 시분할 운영체제

 

16. 사용자가 대화식으로 프로그램을 실행시키기 위해 고안된 운영체제는?

① 배치 운영체제

 

17. 개인용 컴퓨터가 상용화가 이루어지게 된 결정적인 계기는?

① 마이크로프로세서 개발

 

18. 모바일 운영체제의 목적이 아닌 것은?

④ 프로그램의 실시간 실행

 

19. 실시간 운영체제의 가장 중요한 목적은?

② 프로그램마다 정해진 완료 시간 이내에 실행

 

[복합문제]

 

1. 다음은 프로그램 A, B, C 가 모두 도착해있는 상태에서 배치 운영체제에 의해 처리되는 과정이다. 다음 2개의 문항에 답하라.

  1 2 3 4 5 6 7 8 9
A CPU I/O I/O I/O CPU CPU I/O I/O I/O
B 대기 대기 대기 대기 대기 대기 대기 대기 대기
C 대기 대기 대기 대기 대기 대기 대기 대기 대기
10 11 12 13 14 15 16 17 18 19
CPU CPU                
대기 대기 CPU CPU I/O I/O I/O I/O CPU I/O
대기 대기 대기 대기 대기 대기 대기 대기 대기 대기
20 21 22 23 24 25 26 27 28 29/30
                   
I/O CPU CPU              
대기 대기 대기 CPU CPU CPU I/O I/O CPU CPU/CPU

(1) 3개의 프로그램이 모두 메모리에 적재되어 있다고 할 때, 다중프로그래밍 운영체제에서 3개의 프로그램 A, B, C가 실행되는 과정을 그려라. 참고로 프로그램 A, B, C 순서로 처리하되, 프로그램의 실행 중 입출력이 발생하면 다른 프로그램을 실행시킨다. 중단된 프로그램의 입출력 작업이 완료되었을 경우 현재 실행 중인 프로그램을 중단시키고, 입출력으로 중단된 프로그램을 다시 실행시키도록 하라.

  1 2 3 4 5 6 7 8 9
A CPU I/O I/O I/O 대기 대기 CPU CPU I/O
B 대기 CPU CPU I/O I/O I/O I/O 대기 CPU
C 대기 대기 대기 CPU CPU CPU I/O I/O I/O
10 11 12 13 14 15 16 17 18 19
I/O I/O 대기 CPU CPU          
I/O I/O 대기 대기 대기 CPU CPU      
CPU CPU CPU              

(2) 실행 결과에 따라 아래 2개의 표를 채워라. 표에서 처리율은 단위 시간당 처리한 프로그램의 개수이고, 응답 시간이란 프로그램이 준비상태에서 실행이 완료될 때까지의 시간이며, 평균 응답 시간이란 3개 프로그램의 응답 시간에 대한 평균값이다.

  배치 운영체제 다중프로그래밍 운영체제
총 실행 시간 30 16
CPU 유휴 시간 14 0
CPU 활용률(utilization) 16/30=53% 100%
처리율(throughput) 3/30=0.1개/시간 3/16=0.19개/시간
  배치 운영체제 다중프로그래밍 운영체제
프로그램 A의 응답 시간 11 14
프로그램 B의 응답 시간 22 16
프로그램 C의 응답 시간  30 12
프로그램의 평균 응답 시간 63/3=21시간/프로그램 42/3=14시간/프로그램

+ Recent posts