[컴퓨터구조] #6 단일 사이클 구현 1
·
전공/컴퓨터구조
가정 - rising edge 사용 - 한 사이클 내에서는 피드백이 일어나지 않음 - 데이터는 32비트 폭 - 레지스터는 듀얼포트(dual port) 설계 - add $r1, $r2, $r1 - 데이터패스는 검정색 / 컨트롤패스는 파란색 버스(Bus) 컴퓨터 안의 부품들 간에, 또는 컴퓨터 간에 데이터와 정보를 전송하는 통로 - ISA -> E-ISA -> PCI - PCI express(PCI-E) -> 1x -> ... -> 8x -> 16x - Local Bus AGP -> PCI-e 8x Graphis / SSD(NVMe -> PCI-E 3/4/5) 버스(Bus)와 크로스바(Cross bar) - 버스는 한 번에 두 개의 노드만 선택해서 통신가능 - 여러 노드가 같이 통신하려면 스케줄링 필요함(보..
[자료구조] 자료구조 개념, 이론
·
전공/자료구조
시스템 생명 주기(System Life Cycle) 요구사항 시스템의 요구 사항을 파악, 분석 시스템이 무엇을 해야 하는지, 어떤 기능이 있어야 하는지, 사용자의 기대는 무엇인지 결정 분석 시스템의 동작, 기능 및 특성을 정의 시스템의 다양한 구성 요소, 시스템의 관계 및 상호작용 방식을 식별 설계 다양한 구성 요소, 구성 요소 간의 관계 및 인터페이스를 포함하여 시스템의 아키텍처 설계 시스템 구현에 대한 세부 계획 개발 정제와 코딩 설계 정교화, 소프트웨어 코드화 디자인을 컴퓨터에서 실행할 수 있는 코드로 변환 코드 작성, 테스트 및 디버깅 포함 검증 시스템을 테스트하여 요구사항을 충족하고 오류가 없는지 확인 사용자의 기대를 충족하고 의도한 대로 작동하는지 확인 객체 지향 설계 구조적 프로그래밍 설계와..
[Linux] 리눅스 프로세스 관리
·
전공/리눅스시스템관리
더보기 프로세스 프로세스: CPU에 의하여 수행되고 있는 프로그램 셸: 사용자와의 대화를 위한 프로세스 ls 등 명령어: 사용자가 사용하는 명령어, 셸에 의하여 프로세스로 새롭게 생성 a.out아니 사용자 프로그램도 프로세스로 수정 프로그램: 하드디스크에 저장되어 있는 수행가능 한 파일 때로는 원시코드(C/C++)를 프로그램이라고 부르기도 함 시스템 프로그래밍 관점에서 프로그램은 컴피일/링크가 끝난 executiable 파일을 뜻함 Programing, System Call Signal Sources 프로세스 - 현재 시스템에서 실행 중인 프로그램 - 리눅스는 다중 프로세스 시스템으로 동시에 여러 프로세스 실행 프로세스의 부모-자식 관계 리눅스에서 모든 프로세스는 부모-자식 관계 부모프로세스가 자식프로세..
[Linux] 리눅스 파일과 접근 권한
·
전공/리눅스시스템관리
파일 속성 파일 속성 정보 보기: ls -l 파일 접근 권한 접근 권한 종류 권한 파일 디렉터리 읽기 파일을 읽거나 복사 가능 ls 명령으로 디렉터리 목록 확인 가능(ls 명령의 옵션은 실행 권한이 있어야 사용 가능) 쓰기 파일을 수정, 이동, 삭제 가능(디렉터리에 쓰기 권한이 필요) 파일 생성, 삭제 가능 실행 파일 실행 가능(셸 스크립트, 실행 파일의 경우) cd 명령 사용 가능, 파일을 디렉터리로 이동, 복사 가능 접근 권한 표기 방법 -rw-r--r-- 1 root root 223 ... rw- : 소유자 r-- : 그룹 r-- : 기타 사용자 chmod 기능 - 파일이나 디렉터리의 접근 권한 변경 형식 - chmod [옵션] 권한 파일(디렉터리) 옵션 - -R: 하위 디렉터리까지 모두 변경 가..
[Linux] 리눅스 프롬프트 설정, 환경 설정 파일
·
전공/리눅스시스템관리
PS1 프롬프트를 저장한 환경변수 PS1값 설정을 수정하면 프롬프트가 바뀜 이스케이프 문자 이스케이프 문자 기능 이스케이프 문자 기능 \a ASCll종소리 문자(07) \d "요일 월 일" 형식으로 날자를 표시 \e ASCll의 이스케이프 문자, 터미널에 고급 옵션 전달 \h 첫 번째 .까지의 호스트 이름 \H 전체 호스트 이름 \n 줄 바꾸기 \s 셸 이름 \t 24시간 형식으로 현재 시간을 표시 \T 12시간 형식으로 현재 시간을 표시 \@ 12시간 형식으로 현재 시간을 표시(오전/오후) \u 사용자 이름 \v 배시셸의 버전 \w 현재 작업 디렉터리(절대 경로) \W 현재 작업 디렉터리의 절대 경로에서 마지막 디렉터리명 \! 현재 명령의 히스토리 번호 \[ 출력하지 않을 문자열의 시작 부분을 표시 \..
[Linux] 리눅스 배시셸 환경 설정, 앨리어스, 히스토리
·
전공/리눅스시스템관리
배시셸 환경 설정 셸 변수, 환경 변수 셸 변수: 현재 셸에서만 사용할 수 있고 서브 셸로는 전단되지 않는 변수 환경 변수: 현재 셸뿐만 아니라 서브 셸로도 전달되는 변수 주요 환경 변수 환경 변수 의미 환경 변수 의미 HISTSIZE 히스토리 저장 크기 PATH 명령을 탐색할 경로 HOME 사용자 홈 디렉터리의 절대 경로 PWD 작업 디렉터리의 절대 경로 LANG 사용하는 언어 SHELL 로그인 셸 LOGNAME 사용자 계정 이름 set, env, echo set: 셸 변수와 환경 변수 모두 출력 env: 환경 변수만 출력 echo: 특정 변수 출력 셸 변수 정의하기 형식 - [변수명] = [문자열] export 기능 - 지정한 셸 변수를 환경 변수로 변경 형식 - export [옵션] [셸 변수] 옵..
[Linux] 리눅스 입출력 방향 변경(리다이렉션)
·
전공/리눅스시스템관리
표준 입출력 장치 표준 입출력 장치의 파일 디스크립터 파일 디스크립터 파일 디스크립터 대신 사용하는 이름 정의 0 stdin 명령의 표준 입력 1 stdout 명령의 표준 출력 2 stderr 명령의 표준 오류 출력 리다이렉션 명령의 결과를 출력이 아닌 파일에 저장 - 파일 덮어쓰기: > > 기능 - 파일 리다이렉션(덮어쓰기) 형식 - [명령] 1> [파일명] 또는 [명령] > [파일명] 더보기 덮어쓰기 방지: set -o noclobber 설정 해제: set +o noclobber >> 기능 - 파일에 내용을 추가 형식 - [명령] >> [파일명] 오류 리다이렉션 오류는 기본적으로 화면으로 출력 ls /abc > ls.err -> /abc 파일 또는 디렉터리가 없다고 가정, ls.err 파일에 오류 메..
[Linux] 리눅스 셸 기본 사용법, 특수문자
·
전공/리눅스시스템관리
유저 셸 커널 하드웨어 셸의 기능 - 명령어 해석기 기능 - 플그래밍 기능: 셸 스크립트 - 사용자 환경 설정 기능 셸 기본 사용법 셸 지정 및 변경 - 사용자의 기본 셸은 /etc/passwd 파일에 저장 chsh 기능 - 사용자 로그인 셸 변경 형식 - chsh [옵션] [사용자명] 옵션 -s shell: 지정하는 셸(절대 경로)로 로그인 셸을 바꿈 -l: /etc/shells 파일에 지정된 셸 출력 로그인 셸과 서브 셸 - 서브 셸: 사용자가 프롬프트에서 다른 셸을 실행하여 생성한 셸 - ctrl+d 또는 exit로 서브 셸 종료 셸 내장 명령 - 셸 자체적으로 가지고 있는 명령 - ex) cd - 일반적인 리눅스 명령들은 /bin이나 /usr/bin 등 다른 디렉터리에 실행파일 존재 출력 명령 e..
[객체지향프로그래밍][Java] 클래스와 객체 2 (접근 지정자, static, final)
·
전공/객체지향프로그래밍
접근지정자 public: 어떤 클래스에서든 접근 가능 protected: 같은 패키지에 있는 다른 클래스나, 상속받은 자식 클래스에서 접근 가능 private: 해당 클래스 내부에서만 접근 가능 default(package-private): 같은 패키지 내에서만 접근 가능, 따로 접근 지정하지 않았을 경우 자동으로 지정 접근지정자는 객체지향 프로그래밍에서 캡슐화를 구현 클래스 내부 상태와 행동을 적절히 제어 코드의 유지 보수성과 재사용성 향상 클래스 접근 지정 public class World { // public 클래스 } 멤버 접근 지정 멤버에 접근하는 클래스 private 디폴트 접근 지정 protected public 같은 패키지의 클래스 x o o o 다른 패키지의 클래스 x x x o 접근 가..
[객체지향프로그래밍][Java] 클래스와 객체 1 (클래스의 구성, 생성자, this, 객체 배열, 오버로딩, 가비지 컬렉션)
·
전공/객체지향프로그래밍
클래스의 구성 public class Circle { // public: 접근 권한, class 클래스 선언, Circle 클래스 이름 public int radius; // 원의 반지름 필드 public String name; // 원의 이름 필드 public Circle() { //원의 생성자 메소드 } public double getArea() { // 원의 면적 계산 메소드 return 3.14*radius*radius; } 클래스 선언, class Circle class 키워드로 선언 클래스는 { } 안에 모든 필드와 메소드 구현 class Circle은 Circle 이름의 클래스 선언 클래스 접근 권한, public -> 다른 클래스들에서 Circle 클래스를 사용하거나 접근할 수 있음을 선언..