CPU와 메모리(RAM)의 동작 / 프로그래밍 언어
·
CS
CPU와 메모리(RAM)의 동작 CPU의 내부에는 제어장치와 연산장치가 있습니다. 또 CPU 내부에서 기억해야 할 내용들을 저장하기 위해 레지스터와 캐시를 사용합니다. CPU 제어장치 : 안에 레지스터가 존재, 어떤 일을 해야 하는지 제어 (연산장치에 일을 시킨다고 보면 됨!) 연산장치 : 실제 산술이나 논리를 계산 * CPU의 제어장치는 명령어가 한 줄씩 실행되도록 모든 것을 통제합니다. RAM에는 운영체제와 하드디스크에서 복사해온 프로그램들이 저장됩니다. 운영체제 : PC의 하드웨어와 소프트웨어의 모든 내용을 통제하고 관리 현재 실행되는 프로그램(프로세스) 당 코드/데이터/힙/스택의 메모리 영역이 각각 따로 할당 * ROM 이라는 메모리도 있는데 ROM은 Read Only Memory이며 비휘발성 메..
메모리 구조 (코드/데이터/힙/스택)
·
CS
메모리는 4가지 요소로 구성되어 있습니다. 1. 코드 2. 데이터 3. 힙 4. 스택 컴퓨터가 실행될 때는 코드영역과 데이터영역으로 나뉘어서 실행됩니다. 코드 영역은 명령어와 프로그램인데 프로그램이 실행되면, 해당 프로그램이 복사되어서 올라가는 영역이고, 데이터 영역은 프로그램이 한 줄씩 실행되면서 실제 필요한 데이터들을 사용하는 영역입니다. 코드/데이터/힙/스택의 구조 1. 코드 : 명령어, 프로그램 - 프로그램의 모든 코드 2. 데이터 : 전역변수, 타입변수 - 앱이 실행되는 동안 변하지 않음 3. 힙 : 동적할당 - 개발자가 잘 관리해야 하는 부분 4. 스택 : 함수실행을 위한 임시적 공간 - 알아서 자동 관리 * 데이터 종류에 따라 최대의 속도와 최적의 조건으로 사용하기 위한 효율적 메모리 구조 ..
컴퓨터 기본 동작 원리 - 폰노이만 컴퓨터 구조
·
CS
컴퓨터는 기본적으로 CPU, RAM(메모리), 하드디스크로 구성되어 있습니다. 이렇게 구성되어있는 것을 폰노이만 구조라고 합니다. 컴퓨터 기본 동작 원리 1. 보조기억 장치인 하드디스크에 저장된 프로그램(코드) 실행 시 RAM(메모리)로 복사됩니다. 이 때, 실행 중인 프로그램을 프로세스라고 합니다. 2. RAM으로 복사된 프로그램이 둘을 연결해주는 BUS라는 선을 통해 CPU로 전달되어 순서대로 하나씩 수행됩니다. 3. 위 과정을 거쳐 결과를 출력합니다. * CPU는 한 번에 한 가지의 일만 처리할 수 있습니다. * 메모리에는 실제 모든 공간에 주소가 붙어있고, CPU는 메모리 주소를 기억하여 CPU에서 접근이 가능합니다.
[파이썬 Python] for 반복문
·
Python
print("대기번호 : 1") print("대기번호 : 2") print("대기번호 : 3") print("대기번호 : 4") 위처럼 대기번호를 순서대로 계속 발급해야 하는 상황에 매 번 코드를 새로 작성할 수는 없습니다. 이럴 때 필요한 것이 반복문입니다. for문 형식은 for 변수명 in [범위]: 입니다. for waitiing_no in [0, 1, 2, 3, 4]: print("대기번호 : {0}".format(waiting_no)) # 대기번호 : 0 # 대기번호 : 1 # 대기번호 : 2 # 대기번호 : 3 # 대기번호 : 4 범위는 range를 사용해서 나타낼 수도 있습니다. #randrange() for waiting_no in range(1, 6): # 1~5 print("대기번호 ..
[파이썬 Python] if
·
Python
if문의 사용 형태 if 조건 : 실행문 weather = input("오늘 날씨는 어때요? ") if weather == "비" or weather == "눈" : print("우산을 챙기세요") elif weather == "미세먼지": print("마스크를 챙기세요") else: print("준비물 필요 없어요.") # "비" 입력시 -> 우산을 챙기세요 # "미세먼지" 입력시 -> 마스크를 챙기세요 # "맑음" 입력시 -> 준비물 필요 없어요 * input() 함수 input() 함수를 이용하면 변수에 값을 직접 입력해서 결과를 출력할 수 있습니다. temp = int(input("기온은 어때요? ")) if 30 외투를 챙기세요 # -5 입력시 -> 너무 추워요. 나가지 마세요 * input()..
[파이썬 Python] 자료구조의 변경
·
Python
집합 set과 배열 list, 튜플 tuple은 서로의 자료구조로 변경할 수 있습니다. menu = {"커피","우유","주스"} print(menu) #{'커피','우유','주스'} print(menu, type(menu)) # {'커피','우유','주스'} menu = list(menu) print(menu, type(menu)) # ['커피','우유','주스'] menu = tuple(menu) print(menu, type(menu)) # ('커피','우유','주스') menu = set(menu) print(menu, type(menu)) # {'우유','주스','커피'} 처음 집합으로 만들어줬던 것을 list로 변경해주고 그 후에 다시 튜플로 변경할 수 있습니다. type( 이름 ) 을 사용하..
[파이썬 Python] 집합 (set)
·
Python
집합은 중복이 불가능하고 순서가 없습니다. 집합은 중복을 허용하지 않기 때문에 중복된 내용은 한 번만 표기됩니다. my_set = {1,2,3,3,3} print(my_set) # {1,2,3} java와 python을 할 줄 아는 개발자라는 예제를 통해 집합의 다양한 기능을 알아봅시다. 먼저 java를 할 줄 아는 개발자 집합과 python을 할 줄 아는 개발자의 집합을 생성합니다. java = {"유재석", "김태호", "양세형"} python = set(["유재석", "박명수"]) # list로 먼저 생성하고 앞에 set으로 감싸줘서 집합으로 변환 교집합 & , intersection 교집합을 사용하면 두 집합에 모두 포함된 내용을 출력할 수 있습니다. 교집합은 &를 사용하거나 .intersecti..
[파이썬 Python] 튜플
·
Python
튜플은 리스트와는 다르게 내용을 변경하거나 추가할 수 없습니다. 그렇기 때문에 속도가 리스트보다 빠릅니다. 튜플을 생성하는 방법은 튜플의 이름을 정하고 괄호 안에 순서대로 내용을 넣어주면 됩니다. ex. 튜플명 = ( 내용1 , 내용2 ... ) 생성된 튜플을 출력할 때는 리스트를 출력할 때와 마찬가지로 튜플명에 인덱스 번호를 입력해주면 됩니다. ex. print( 튜플명[n]) menu = ("돈까스", "치즈까스") print(menu[0]) # 돈까스 print(menu[1]) # 치즈까스 튜플은 내용을 변경하거나 추가할 수 없기 때문에 add, append 등의 명령어를 사용하면 오류가 발생합니다. 튜플을 사용하면 좋은 점은 여러 개의 변수를 한 번에 선언할 수 있다는 점입니다. name = "김..