diff --git a/src/armnnUtils/Filesystem.cpp b/src/armnnUtils/Filesystem.cpp
new file mode 100644
index 0000000..08c447b
--- /dev/null
+++ b/src/armnnUtils/Filesystem.cpp
@@ -0,0 +1,50 @@
+﻿//
+// Copyright © 2020 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "Filesystem.hpp"
+
+#if defined(__unix__)
+#include <sys/stat.h>
+#include <stdio.h>
+#elif defined(_MSC_VER)
+#define WIN32_LEAN_AND_MEAN
+#include <Windows.h>
+#endif
+
+namespace armnnUtils
+{
+namespace Filesystem
+{
+
+long GetFileSize(const char* path)
+{
+#if defined(__unix__)
+    struct stat statusBuffer;
+    if (stat(path, & statusBuffer) != 0)
+    {
+        return -1;
+    }
+    return statusBuffer.st_size;
+#elif defined(_MSC_VER)
+    WIN32_FILE_ATTRIBUTE_DATA attr;
+    if (::GetFileAttributesEx(path, GetFileExInfoStandard, &attr) == 0)
+    {
+        return -1;
+    }
+    return attr.nFileSizeLow;
+#endif
+}
+
+bool Remove(const char* path)
+{
+#if defined(__unix__)
+    return remove(path) == 0;
+#elif defined(_MSC_VER)
+    return ::DeleteFile(path);
+#endif
+}
+
+}
+}
diff --git a/src/armnnUtils/Filesystem.hpp b/src/armnnUtils/Filesystem.hpp
new file mode 100644
index 0000000..d6dc5b9
--- /dev/null
+++ b/src/armnnUtils/Filesystem.hpp
@@ -0,0 +1,18 @@
+﻿//
+// Copyright © 2020 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+namespace armnnUtils
+{
+namespace Filesystem
+{
+
+long GetFileSize(const char* path);
+
+bool Remove(const char* path);
+
+}
+}
diff --git a/src/armnnUtils/Processes.cpp b/src/armnnUtils/Processes.cpp
new file mode 100644
index 0000000..0e43e8c
--- /dev/null
+++ b/src/armnnUtils/Processes.cpp
@@ -0,0 +1,30 @@
+﻿//
+// Copyright © 2020 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "Processes.hpp"
+
+#if defined(__unix__)
+#include <unistd.h>
+#elif defined(_MSC_VER)
+#define WIN32_LEAN_AND_MEAN
+#include <Windows.h>
+#endif
+
+namespace armnnUtils
+{
+namespace Processes
+{
+
+int GetCurrentId()
+{
+#if defined(__unix__)
+    return getpid();
+#elif defined(_MSC_VER)
+    return ::GetCurrentProcessId();
+#endif
+}
+
+}
+}
diff --git a/src/armnnUtils/Processes.hpp b/src/armnnUtils/Processes.hpp
new file mode 100644
index 0000000..0f1d955
--- /dev/null
+++ b/src/armnnUtils/Processes.hpp
@@ -0,0 +1,16 @@
+﻿//
+// Copyright © 2020 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+namespace armnnUtils
+{
+namespace Processes
+{
+
+int GetCurrentId();
+
+}
+}
